【发布时间】:2013-12-05 04:57:26
【问题描述】:
我有一个文本框 (txtName) 和一个标签 (lblMassage)。
当表单加载时,用户可以在文本框中输入他的名字并将他的数据提交到数据库中。
我的按钮点击事件是
private void btnSubmit_Click(object sender, EventArgs e)
{
string name = txtName.Text;
String sql = "insert into UserName values ('" + name + "')";
SqlCommand com = new SqlCommand(sql, ConnectionManager.Connection());
com.ExecuteNonQuery();
lblMessage.Text = "Record added successfully";
txtName.Text = "";
}
class ConnectionManager
{
public static SqlConnection Connection()
{
string ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\chathuranga\documents\visual studio 2012\Projects\SansipProtoType\SansipProtoType\SansipDataBase.mdf;Integrated Security=True";
SqlConnection con = new SqlConnection(ConnectionString);
con.Open();
return con;
}
}
当我手动检查数据库时,txtName 的值在 UserName 表中,这意味着用户输入的值已成功添加到数据库中。
但是下面两条语句都行不通。
lblMessage.Text = "Record added successfully";
txtName.Text = "";
谁能给我一个解决方案?
【问题讨论】:
-
这是你的完整代码吗..我在任何地方都没有看到连接打开语句
-
是的,有些东西不见了。没有打开,没有关闭。当您通过它进行调试时会发生什么。它会碰到这些行还是抛出错误?
-
OK.. 我添加了连接打开和关闭的代码
-
你真的有一个名为
UserName的表只有一个非默认字段吗?如果没有,您很可能会遇到绕过您没有看到结果的两行的异常。 -
在这种情况下,插入应该是
INSERT INTO UserName (Name) VALUES('xxx'),但是,像 Aydin 的回答一样参数化是个好主意。
标签: c# sql-server winforms ado.net