我在“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,但也不起作用。我在这里做错了什么?