C# 无法将参数值从DataRowView转换为Int32

C# 无法将参数值从DataRowView转换为Int32,c#,sql-server,sql-server-2008,tsql,ado.net,C#,Sql Server,Sql Server 2008,Tsql,Ado.net,我正在插入记录,其中一个对象是combobox。combox已连接到表。当我插入时,会出现以下错误: 无法将参数值从DataRowView转换为Int32 我的代码: cn.Open(); SqlCommand Insert = new SqlCommand(); Insert.Connection = cn; Insert.CommandType = CommandType.Text; Insert.CommandText = "INSERT INTO Ticket VALUES (Cus

我正在插入记录,其中一个对象是combobox。combox已连接到表。当我插入时,会出现以下错误:

无法将参数值从DataRowView转换为Int32

我的代码:

cn.Open();

SqlCommand Insert = new SqlCommand();
Insert.Connection = cn;
Insert.CommandType = CommandType.Text;
Insert.CommandText = "INSERT INTO Ticket  VALUES (CustomerID, Date, Store, Amount, NoStub) ";

Insert.Parameters.Add("CustomerID", SqlDbType.Int).Value = cboName.SelectedValue;
Insert.Parameters.Add("Date", SqlDbType.DateTime).Value = dtpDate.Value.Date.ToString();
Insert.Parameters.Add("Store", SqlDbType.NVarChar).Value = txtStore.Text;
Insert.Parameters.Add("Amount", SqlDbType.Decimal).Value = txtAmount.Text;
Insert.Parameters.Add("NoStub", SqlDbType.Decimal).Value = txtStub.Text;

Insert.ExecuteNonQuery();

cn.Close();
使用此代码:

或使用
cboName的
int.parse

将代码更改为以下内容,并让服务器解析数据类型

cn.Open();
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = cn;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "INSERT INTO Ticket(CustomerID, Date, Store, Amount, NoStub)  
                       VALUES (@CustomerID, @Date, @Store, @Amount, @NoStub) ";
sqlCmd.Parameters.AddWithValue("@CustomerID", cboName.SelectedValue);
sqlCmd.Parameters.AddWithValue("@Date", dtpDate.Value.Date.ToString());
sqlCmd.Parameters.AddWithValue("@Store", txtStore.Text);
sqlCmd.Parameters.AddWithValue("@Amount", txtAmount.Text);
sqlCmd.Parameters.AddWithValue("@NoStub", txtStub.Text);
sqlCmd.ExecuteNonQuery();
cn.Close();

添加一些你已经尝试过的代码,这样你可以期待更快的答案,而不是听起来太笼统。你能解决这个问题吗?如果你解决了这个问题,如果其中一个答案帮助你解决了这个问题,那么最好接受它作为答案。如果您仍然有问题,告诉您卡在哪里会有帮助。或者只需
Int32.Parse(storeCode)
cn.Open();
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = cn;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "INSERT INTO Ticket(CustomerID, Date, Store, Amount, NoStub)  
                       VALUES (@CustomerID, @Date, @Store, @Amount, @NoStub) ";
sqlCmd.Parameters.AddWithValue("@CustomerID", cboName.SelectedValue);
sqlCmd.Parameters.AddWithValue("@Date", dtpDate.Value.Date.ToString());
sqlCmd.Parameters.AddWithValue("@Store", txtStore.Text);
sqlCmd.Parameters.AddWithValue("@Amount", txtAmount.Text);
sqlCmd.Parameters.AddWithValue("@NoStub", txtStub.Text);
sqlCmd.ExecuteNonQuery();
cn.Close();