0

我想id在将一行数据插入表后得到,但出现错误:

System.InvalidCastException:指定的强制转换无效。

这是我的代码

SqlCommand cmd_insert = new SqlCommand("insert into ITM_OrderItem (ITM_Code, ITM_Desc, ORCAT_Desc, ORSCT_Desc, ARCBG_Abbrev, ARCSG_Desc, ARCSC_Code, ARCIM_DerivedFeeItem, OPD_Price, IPD_Price, Tou_Price, App_Status, SITES, CSSUSR_RowId, CSSUSR_DepId, CSSUSR_PosId , CDate, MDate) values('"
                       + dt.Rows[i]["EARCIM_Code"].ToString() + "','"
                       + dt.Rows[i]["EARCIM_Desc"].ToString() + "','"
                       + dt.Rows[i]["EORCAT_Desc"].ToString() + "','"
                       + dt.Rows[i]["EARCIC_Desc"].ToString() + "','"
                       + dt.Rows[i]["EARCBG_Abbrev"].ToString() + "','"
                       + dt.Rows[i]["EARCSG_Desc"].ToString() + "','"
                       + dt.Rows[i]["EARCSC_Desc"].ToString() + "','"
                       + dt.Rows[i]["EARCIM_DerivedFeeItem"].ToString() + "','"
                       + dt.Rows[i]["OPD"].ToString() + "','"
                       + dt.Rows[i]["IPD"].ToString() + "','"
                       + dt.Rows[i]["Tourist"].ToString() + "','"
                       + status_app + "','"
                       + usr_site + "','"
                       + usrID + "','"
                       + Dep_RowId + "','"
                       + Pos_RowId + "','"
                       + Cdate + "','"
                       + Cdate + "') select SCOPE_IDENTITY()", conEMR);

// error on this line
insert_RowId = (Int32)cmd_insert.ExecuteScalar();

十分感谢。

4

1 回答 1

0

看起来您的表 ITM_OrderItem 中的标识列没有使用int作为数据类型,我可以猜测它是一个bigint数据类型,如果是这种情况,您应该将代码中的行更改为:

insert_RowId = (Int64)cmd_insert.ExecuteScalar();

还要确保在 C# 代码声明中将变量“ insert_RowId ”的数据类型更改为Int64

于 2014-07-09T04:43:35.520 回答