如何将字符串转换为int32 c#?

zdr*_*tye -5 c# sql-server ado.net winforms

我正在尝试从C#Windows窗体上的某个文本框和一个标签插入SQL Server中的Transaction表,其代码如下:

AppProcess abc = new AppProcess();
SqlConnection sqlconn1 = abc.GetConn();

SqlCommand sqlinsert = new SqlCommand("insert into Payment values
(@TID,@EID,@CustID,@CFName,@CLName,@BID,@BName,@Price,@Qty,@TransDate)",
sqlconn1);

DataTable dtCustomer = new DataTable();
sqlconn1.Open();

sqlinsert.Parameters.Add(new SqlParameter("@TID", SqlDbType.VarChar, 10));
sqlinsert.Parameters.Add(new SqlParameter("@EID", SqlDbType.VarChar, 10));
sqlinsert.Parameters.Add(new SqlParameter("@CustID", SqlDbType.VarChar, 10));
sqlinsert.Parameters.Add(new SqlParameter("@CFName", SqlDbType.VarChar, 100));
sqlinsert.Parameters.Add(new SqlParameter("@CLName", SqlDbType.VarChar, 100));
sqlinsert.Parameters.Add(new SqlParameter("@BID", SqlDbType.VarChar, 10));
sqlinsert.Parameters.Add(new SqlParameter("@BName", SqlDbType.VarChar, 100));
sqlinsert.Parameters.Add(new SqlParameter("@Price", SqlDbType.Int));
sqlinsert.Parameters.Add(new SqlParameter("@Qty", SqlDbType.Int));
sqlinsert.Parameters.Add(new SqlParameter("@Transdate", SqlDbType.Date));

sqlinsert.Parameters["@TID"].Value = tidTxt.Text;
sqlinsert.Parameters["@EID"].Value = eidTxt.Text;
sqlinsert.Parameters["@CustID"].Value = cidTxt.Text;
sqlinsert.Parameters["@CFName"].Value = cfnameTxt.Text;
sqlinsert.Parameters["@CLName"].Value = clnameTxt.Text;
sqlinsert.Parameters["@BID"].Value = bidTxt.Text;
sqlinsert.Parameters["@BName"].Value = bnameTxt.Text;
sqlinsert.Parameters["@Price"].Value = label17.Text;
sqlinsert.Parameters["@Qty"].Value = qtychoiceTxt.Text;
sqlinsert.Parameters["@Transdate"].Value = TransDateTxt.Text;

sqlinsert.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

但是当我运行应用程序时,它会生成此错误: 单击此处查看错误的样子

我很困惑哪条线触发了错误.以及如何将字符串转换为Int32?

小智 6

使用应该使用像这样的代码转换:

command.Parameters.Add("@Qty", SqlDbType.Int).Value = Convert.ToInt32(qtychoiceTxt.Text);
Run Code Online (Sandbox Code Playgroud)

  • @AmitKumarGhosh什么是好的,是表单上的验证器,数据绑定代码的验证(所有这些都是可用的OOTB),最后,是的,抛出异常并警告用户以前的验证是否失败.如果我的公司偶然给我支付了0欧元,我就不会*开心 (2认同)