C#不能在C#中的数据插入SQL Server数据库

问题描述:

我最近新,并按照教程上连接到数据库,用于查看或SELECT命令连接是好的,我做了一些修改基于论坛做出的线程我的代码更好,但是当我在我的SQL Server的INSERT中时,出现了一些问题。我能够插入数据,但是当我重新运行程序时,刚才插入的数据不在数据库中。C#不能在C#中的数据插入SQL Server数据库

这是我在插入代码

string commandText = "INSERT INTO loginInfo (name, pass, role) VALUES(@name, @pass, @role)"; 

using (connection = new SqlConnection(connectionString)) 
{ 
    SqlCommand command = new SqlCommand(commandText, connection); 
    command.CommandType = CommandType.Text; 

    command.Parameters.AddWithValue("@name", textBox1.Text); 
    command.Parameters.AddWithValue("@pass", textBox2.Text); 
    command.Parameters.AddWithValue("@role", textBox3.Text); 

    try 
    { 
     command.Connection.Open(); 
     command.ExecuteNonQuery(); 
    } 
    catch 
    { 
    } 
    finally 
    { 
     command.Connection.Close(); 
    } 
} 

我试图创建一个简单的CRUD,但不保存数据......请帮助

+4

取出空catch块,并检查异常。它会告诉你什么是错的 – doerig

+0

你可以尝试关闭'ExecuteNonQuery'后连接? –

+0

+1 @doerig。永远不要空着。请尝试一步一步的调试,并检查你在哪里得到异常。执行非查询返回'int',它将告诉你插入的状态,是否插入数据。 –

如果您使用的AttachDbFileName=条款的连接字符串,则可能曾被人以一个著名的问题:检查您的数据时,你可能只是在看错误的数据库(文件)

当运行在Visual Studio中的应用程序,它会被周围的.mdf文件复制(从App_Data目录输出目录 - 通常.\bin\debug - 在你的应用程序运行)和最有可能,你INSERT的作品就好了 - 但你只是希望在年底错误.mdf文件

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

在我看来,长期可行的解决办法是:

  1. 安装SQL Server Express(和你已经做到这一点无论如何)

  2. 安装SQL Server Management Studio中快速

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

  4. 连接使用其逻辑数据库名称(当你在服务器上创建它给出)它 - 和周围不乱用物理数据库文件和用户实例。在这种情况下,您的连接字符串将是这样的:

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

    和其他一切是正是和以前一样......

另见阿龙贝特朗的优秀博客文章Bad habits to kick: using AttachDbFileName更多背景信息。

+0

谢谢它的工作,我安装了SSMS Express和它的工作,我的数据库,我使用的是一个基于服务的数据库,我能通过右键单击资源管理器并添加基于服务的数据库来添加它 – yok2xDuran