如何从TextBox更新数据库字符串值?

时间:2009-12-03 14:24:26

标签: asp.net

我无法通过textbox更新我的数据库。在数值的情况下,我可以更新但不能使用字符串值。 我的编码是......

SqlCommand cmdup= new SqlCommand("UPDATE [port1] SET [prt1]=@prt1 WHERE [no]= 1",cn);
cmdup.Parameters.Add("@prt1", TextBox1.Text);  
cmdup.ExecuteNonQuery();

如果有人知道ans:回复我

4 个答案:

答案 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是否只接受数值?