0

我一直在尝试将数据更新并插入到现有的数据库表中。我没有收到任何错误,但实际的表数据没有被更新。

这是我用于更新其中一行的代码:

 using (SqlConnection con = new SqlConnection(connection))
 {
            con.Open();

            SqlTransaction t = con.BeginTransaction(); 
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.Transaction = t;
            cmd.CommandText = "Update tblName set PersonName = 'Wes' where PersonID = 2";
            int i = cmd.ExecuteNonQuery();

            t.Commit();

            Console.WriteLine("change: "+i);
         }

输出是

change: 1. 

运行时发生更改,但实际表数据仍然相同。有任何想法吗?

4

1 回答 1

0

整个User Instance 和 AttachDbFileName=方法是有缺陷的 - 充其量!Visual Studio 将围绕.mdf文件进行复制(从输出目录复制App_Data到输出目录中.\bin\debug),并且很可能,您的工作与in相比INSERT很好- 但您最终只是查看了错误的 .mdf 文件(in )!.mdf.\bin\debugApp_Data

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

我认为真正的解决方案是

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

  2. 安装 SQL Server Management Studio Express

  3. 在SSMS Express中创建您的数据库,给它一个逻辑名称(例如Testing

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

    Data Source=.\\SQLEXPRESS;Database=Testing;Integrated Security=True
    

    其他一切都和以前完全一样......

于 2013-01-04T16:05:54.110 回答