C#插入数据库时,出现了转换类型的报错提示;

请教一下,我用参数化来执行,对数据库的插入操作,但错误提示如下,pax在数据库的类型为Int型,相关代码如下,请看看如何修改优化;

img

img

private void btnsave_Click(object sender, EventArgs e)
        {
            string ValueFormTextbox = Form1.TextBoxValue;

            SqlConnection Conn = new SqlConnection("server= 192.168.100.247; database= Whmesinfo;User= Sa;Password=whyy@2021");

            Conn.Open();

            string str = "select count(*) from w_prohourcount where batchNo='" + textprobatchNo.Text.ToString() + "'";
            SqlCommand com = new SqlCommand(str, Conn);
            int intcont = Convert.ToInt32(com.ExecuteScalar());

            if (intcont > 0)//判断数据库中是否有相同的录
            {
                //Response.write("alert('对不起!不允许填写相同记录!')");
                Console.WriteLine("不允许填写相同记录");
            }

            else
            {
                try
                {

                    string SqlString = @"INSERT INTO [dbo].[w_prohourcount]
                   (teams,banci,process,proname,spec,unit,daypro,sumpro,state,pax,ulh,note)                                        
                  values  
                   (@teams,@banci,@process, @proname, @spec,@unit,@daypro,@sumpro,@state,@pax,@ulh,@note)";

                    SqlCommand comm = new SqlCommand(SqlString, Conn);
                    comm.Parameters.AddWithValue("@teams", "teams");
                    comm.Parameters.AddWithValue("@banci", "banci");
                    comm.Parameters.AddWithValue ("@process", "process");
                    comm.Parameters.AddWithValue("@proname", "proname");
                    comm.Parameters.AddWithValue("@spec", "spec");
                    comm.Parameters.AddWithValue("@unit", "unit");
                    comm.Parameters.AddWithValue("@daypro", "daypro");
                    comm.Parameters.AddWithValue("@sumpro", "sumpro");
                    comm.Parameters.AddWithValue("@state", "state");
                    comm.Parameters.AddWithValue("@pax",  SqlDbType.NVarChar).Value = "pax";
                    comm.Parameters.AddWithValue("@ulh", "ulh");
                    comm.Parameters.AddWithValue("@note", "note");
                    comm.ExecuteNonQuery();

                    MessageBox.Show("数据保存成功!");
                }
                catch (Exception ex)
                {
                    // 显示保存失败的错误信息
                    MessageBox.Show("保存失败:" + ex.Message);
                }
                finally
                {
                    // 关闭数据库连接
                    Conn.Close();
                }

            }
        }


既然是int
comm.Parameters.AddWithValue("@pax", SqlDbType.NVarChar).Value = "pax";
这里为啥用 NVArchar
而且value(包括所有的)是变量,不能有引号