当前位置: 代码迷 >> C# >> VS中判断TEXTBOX是否有输入的有关问题(C#)
  详细解决方案

VS中判断TEXTBOX是否有输入的有关问题(C#)

热度:184   发布时间:2016-05-05 05:17:00.0
VS中判断TEXTBOX是否有输入的问题(C#)
有六个TEXTBOX,第六个不输入数据时,总是提示:INSERT 语句中列的数目小于 VALUES 子句中指定的值的数目
代码中 if (TextBox6.Text.Trim()!= "")好像没有起作用,是我的代码有问题吗?求解答
代码如下:
 protected void Button1_Click(object sender, EventArgs e)
    {
        if (TextBox1.Text == "" || TextBox2.Text == "" || TextBox3.Text == "" || TextBox4.Text == "" || TextBox5.Text == "")
        {
            Response.Write("<script>alert('请输入完整!')</script>");
            return;     //如果没输入完整则返回
        }
        string sqlStr;
        SqlConnection conn = new SqlConnection(connStr);
        if (TextBox6.Text.Trim()!= "")
        {
            sqlStr = "insert [CP]([CPBH],[CPMC],[JG],[KCL])values(@xsbh,@xsmc,@dq,@fzr,@dh,@bz)";
        }
        else
        {
            sqlStr = "insert [CP]([CPBH],[CPMC],[JG],[KCL])values(@xsbh,@xsmc,@dq,@fzr,@dh)";
        }
        
        SqlCommand cmd = new SqlCommand(sqlStr, conn);
        //添加参数
        cmd.Parameters.Add("@xsbh", SqlDbType.Char, 6).Value = TextBox1.Text.Trim();
        cmd.Parameters.Add("@xsmc", SqlDbType.Char, 30).Value = TextBox2.Text.Trim();
        cmd.Parameters.Add("@dq", SqlDbType.Char, 10).Value = TextBox3.Text.Trim();
        cmd.Parameters.Add("@fzr", SqlDbType.Char, 8).Value = TextBox4.Text.Trim();
        cmd.Parameters.Add("@dh", SqlDbType.Char, 12).Value = TextBox5.Text.Trim();
        if (TextBox6.Text.Trim()!= "")
        {
            cmd.Parameters.Add("@bz", SqlDbType.Char, 200).Value = TextBox6.Text.Trim();
        }
        conn.Open();                                    //打开数据库连接
        cmd.ExecuteNonQuery();  //执行SQL语句
        SqlDataSource1.DataBind();//重新绑定
        conn.Close();       //关闭数据库连接
    }
------解决思路----------------------
启动调试,按F11逐语句调试就有没有起作用。

这个问题错在SQL语句。
"insert [CP]([CPBH],[CPMC],[JG],[KCL]) 插入 [CP]表的4个列([CPBH],[CPMC],[JG],[KCL])。
后面的values(@xsbh,@xsmc,@dq,@fzr,@dh)";有5个参数,如果textBox6有值,则是6个参数,怎么对应??

提示:INSERT 语句中列的数目小于 VALUES 子句中指定的值的数目。这已经很明显了呀
------解决思路----------------------
 sqlStr = "insert [CP]([CPBH],[CPMC],[JG],[KCL])values(@xsbh,@xsmc,@dq,@fzr,@dh,@bz)";


列数与参数个数都不一致,从哪里会对!!
  相关解决方案