未能将参数值从DataRowView转换为Int32
本文关键字:DataRowView 转换 Int32 参数 | 更新日期: 2023-09-27 18:21:30
我正在插入记录,其中一个对象是combobox。组合框已连接到表格。当我插入这个错误出现:
无法将参数值从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();
使用此示例代码:
command.Parameters.Add("@CustomerID", SqlDbType.Int).Value = Convert.ToInt32(storeCode);
或使用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();