如何在sql数据库中更新表数据

时间:2012-06-20 09:47:51

标签: c# asp.net sql-server-express

我正在使用asp.net作为我的项目,我正在使用以下代码,但它无法正常工作

 SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\WEB_PROJECT\\App_Data\\ASPNETDB.MDF;Integrated Security=True;User Instance=True");
 SqlCommand cmd = new SqlCommand();
 cmd.Connection = con;
 con.Open();
 cmd.CommandText = "UPDATE info SET fname = @fn, lname = @fl, phone= @ph, recoveryq=@rq, recoverya=@ra WHERE username = @un";  

 cmd.Parameters.AddWithValue("fn", TextBox3.Text);
 cmd.Parameters.AddWithValue("fl", TextBox4.Text);
 cmd.Parameters.AddWithValue("ph", TextBox5.Text);
 cmd.Parameters.AddWithValue("rq",TextBox6.Text);
 cmd.Parameters.AddWithValue("ra",TextBox2.Text);
 cmd.Parameters.AddWithValue("un",line);        
 cmd.ExecuteNonQuery();
 con.Close();

建议我很困惑! :(

2 个答案:

答案 0 :(得分:3)

正如我之前在此网站上所说的那样 - 整个用户实例和AttachDbFileName = 方法存在缺陷 - 充其量! Visual Studio将围绕.mdf文件和最有可能进行复制,您的UPDATE工作正常 - 但您只是看着错误{{1}文件到底!

如果你想坚持这种方法,那么尝试在.mdf调用上设置一个断点 - 然后用SQL Server Mgmt Studio Express检查con.Close()文件 - 我几乎可以肯定你的数据在那里。

我认为真正的解决方案将是

  1. 安装SQL Server Express(你已经完成了)

  2. 安装SQL Server Management Studio Express

  3. SSMS Express 中创建数据库,为其指定一个逻辑名称(例如.mdf

  4. 使用其逻辑数据库名称(在服务器上创建时给定)连接到它 - 并且不要乱用物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:

    ASPNETDB

    其他所有内容都完全与以前相同......

答案 1 :(得分:2)

cmd.Parameters.AddWithValue("@fn", TextBox3.Text);

您必须指定参数名称和“@”。