我无法通过textbox更新我的数据库。在数值的情况下,我可以更新但不能使用字符串值。 我的编码是......
SqlCommand cmdup= new SqlCommand("UPDATE [port1] SET [prt1]=@prt1 WHERE [no]= 1",cn);
cmdup.Parameters.Add("@prt1", TextBox1.Text);
cmdup.ExecuteNonQuery();
如果有人知道ans:回复我
答案 0 :(得分:1)
我建议明确定义参数类型以匹配DB中的类型,并将值作为相应的类型传递给Parameters.Add。
e.g。此时,您将字符串类型值传递给Parameters.Add,而不是显式定义类型。因此,它将从提供的值类型中假设数据类型...所以@prt1类型将作为NVARCHAR传递到数据库中。我相信。
例如,如果prt1字段是INTEGER,那么更安全的恕我直言:
cmd.Parameters.Add("@prt", SqlDbType.Int,4).Value = Int32.Parse(TextBox1.Text);
或
cmd.Parameters.AddWithValue("@prt", Int32.Parse(TextBox1.Text));
我总是想完全定义我传入SQL的参数类型,以排除任何潜在的意外问题。
答案 1 :(得分:1)
检查@ prt1的数据类型以查看它是否为Int值,因为您将同一列设置为两个不同的值。
答案 2 :(得分:1)
将textBox解析为Integer,因为要插入数值,即Int64.Parse(“Textbox1.Text”);很好用字符串它确实有问题。
答案 3 :(得分:0)
只是猜测:prt
是否只接受数值?