gpt4 book ai didi

c# - 更新/插入信息时出错

转载 作者:行者123 更新时间:2023-11-30 17:58:49 24 4
gpt4 key购买 nike

我收到以下错误:

ORA-01036: illegal variable name/number.

错误仅在单击更新或删除时发生(所有文本框必须完整才能更新)。我最终从 SQL 数据库更改为 Oracle 数据库,而且到处都遇到了小问题。编辑和取消行工作正常。下面我将包括我的查询:

protected void gv_RowCommand(object sender, GridViewCommandEventArgs e)
{

if (e.CommandName == "Insert") //- this is needed to explain that the INSERT command will only work when INSERT is clicked
{
gv.DataBind();

DataTable d = dbcon.GetDataTable("SELECT * FROM CIS.CIS_TRANS ORDER BY ID DESC", "ProjectCISConnectionString");

string transCode = "", fundCode = "", BSA_CD = "", DP_TYPE = "";

if (d.Rows.Count > 0)
{
transCode = d.Rows[0]["TRANS_CD"].ToString();
fundCode = d.Rows[0]["FUND_CD"].ToString();
BSA_CD = d.Rows[0]["BSA_CD"].ToString();
DP_TYPE = d.Rows[0]["DP_TYPE"].ToString();

if (transCode.Trim().Length > 0)
{
dbcon.Execute("INSERT INTO CIS.CIS_TRANS (ID,TRANS_CD) VALUES(CIS.S_CIS_TRANS.nextval,'')", "ProjectCISConnectionString");

gv.DataBind();
}
}

gv.EditIndex = gv.Rows.Count - 1;

}
else if (e.CommandName == "Cancel")
{
DataTable d = dbcon.GetDataTable("SELECT * FROM CIS.CIS_TRANS ORDER BY ID DESC", "ProjectCISConnectionString");

string transCode = "";

if (d.Rows.Count > 0)
{
transCode = d.Rows[0]["TRANS_CD"].ToString();

if (transCode.Trim().Length == 0)
{
dbcon.Execute(string.Format("DELETE CIS.CIS_TRANS WHERE ID = '{0}'", d.Rows[0]["ID"]), "ProjectCISConnectionString");

gv.DataBind();
}
}

如果你们需要我包含我的代码的其他部分,请尽管说。我会马上包含它。

下面是我的源代码:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ProjectCISConnectionString %>" ProviderName="<%$ConnectionStrings:ProjectCISConnectionString.ProviderName %>"
SelectCommand="SELECT * FROM CIS.CIS_TRANS ORDER BY ID ASC"
DeleteCommand="DELETE FROM CIS.CIS_TRANS WHERE ID = @ID"
InsertCommand="INSERT INTO CIS.CIS_TRANS (TRANS_CD,FUND_CD,BSA_CD,DP_TYPE,TRANS_CD_DESC) VALUES (@TRANS_CD,@FUND_CD,@BSA_CD,@DP_TYPE,@TRANS_CD_DESC)"
UpdateCommand="UPDATE CIS.CIS_TRANS SET TRANS_CD = @TRANS_CD, FUND_CD = @FUND_CD, BSA_CD = @BSA_CD, DP_TYPE = @DP_TYPE, TRANS_CD_DESC =@TRANS_CD_DESC WHERE ID = @ID">

</asp:SqlDataSource>

最佳答案

Oracle ADO.NET 库要求在您传递给其引擎的每个参数中使用前缀 : 而不是 @

只需将参数的前缀从 @ 更改为 :

关于c# - 更新/插入信息时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11848866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com