返回首页

这是根据序号在访问databese更新数据编码。
数据库中的整数数据类型。通过文本框输入序列号。它是在字符串数据类型。我转换成整数类型的数据,然后检查查询字符串的地方conditon。请做一些帮助。

protected void Button11_Click(object sender, EventArgs e)

   {

     int x;

     String s;

     s = TextBox1.Text;

     x=(Convert.ToInt32(s));

    cmd = new OleDbCommand("update userdata set firstname='" + TextBox2.Text + "', lastname='" + TextBox7.Text + "', department='" + TextBox3.Text + "', software='" + TextBox4.Text + "', hardware='" + TextBox5.Text + "' where sno='" + s +"'", con);

    cmd.ExecuteNonQuery();

错误:pregt;在条件表达式中数据类型不匹配。

谢谢你,

回答

评论会员:游客 时间:2012/02/06
OriginalGriff:请不要做这种方式。这是一个邀请到你的数据库的意外或蓄意破坏。代替(使用Parametrised查询,您的问题将会消失)。{C}哦,顺便说一句:不使用控件的默认名称。你可能还记得,TextBox5有今天的硬件,但在六个星期的时间呢?没有机会了。如果你打电话给代替它tbHardware,那么它是显而易见的,当你写它,当你看它维修
乌代・辛格:尝试

cmd = new OleDbCommand("update userdata set firstname='" + TextBox2.Text + "', lastname='" + TextBox7.Text + "', department='" + TextBox3.Text + "', software='" + TextBox4.Text + "', hardware='" + TextBox5.Text + "' where sno=" + x +"", con);

但我建议你使用参数化查询,以避免SQL注入攻击。

希望它可以帮助
评论会员:游客 时间:2012/02/06
Tejas_Vaishnav:你好朋友你TextBox1.Text值转换成int变量名为"X",和你通过您的查询字符串值"S"...也投'你SNO,所以它成为一个字符串,而不是int所以尝试此查询,而不是你{体C3}