【发布时间】:2013-03-19 06:19:15
【问题描述】:
我在“Checkout”类中有一个函数,它运行一条 sql 语句将一条记录插入到表中,然后选择 scope_identity,给我该记录的 ID。它以 int 形式返回 ID,我将其分配给网页中的变量:
int OrderID = Checkout.WriteOrder_tblOrders(CustID);
函数如下:
public static int WriteOrder_tblOrders(int CustID)
{
// OrderID is initially 0, then changed when scope_identity is called in the sql statement.
int OrderID = 0;
DateTime OrderDate = DateTime.Now;
string sql = "INSERT INTO tblOrders (OrderDate, CustID) VALUES (@OrderDate, @CustID); SELECT scope_identity();";
using (SqlConnection myConnection = new SqlConnection(connectString))
{
using (SqlCommand cmd = new SqlCommand(sql, myConnection))
{
cmd.Parameters.AddWithValue("@CustID", CustID);
cmd.Parameters.AddWithValue("@OrderDate", OrderDate);
myConnection.Open();
OrderID = (int)cmd.ExecuteScalar();
myConnection.Close();
}
}
return OrderID;
}
调试器显示该函数没有问题,新记录在该表中正确显示,但我得到了一个
“无效的演员表”
第一行出错,我在其中分配了 OrderID。我试过这个:
int OrderID = (int)Checkout.WriteOrder_tblOrders(CustID);
同时使用 int 和 Int32,并尝试使用 Convert.ToInt32,但也不起作用。我在这里做错了什么?
【问题讨论】:
标签: c# asp.net sql casting int