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

iamsharleen 2015-01-05 11:23:55
有六个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(); //关闭数据库连接
}
...全文
420 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2015-01-05
  • 打赏
  • 举报
回复
sqlStr = "insert [CP]([CPBH],[CPMC],[JG],[KCL])values(@xsbh,@xsmc,@dq,@fzr,@dh,@bz)"; 列数与参数个数都不一致,从哪里会对!!
我叫小菜菜 2015-01-05
  • 打赏
  • 举报
回复
启动调试,按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 子句中指定的值的数目。这已经很明显了呀

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧