2013-06-18 125 views
0

我正在用C#开发windows表单应用程序与sql server数据库。我只能在运行时插入和检索数据。如果我再次运行它,它不会显示以前插入的数据。数据没有被保存在数据库中没有运行时错误

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True" 
+4

您如何向我们展示您用于尝试插入数据的代码?到目前为止,您只向我们显示了连接字符串。 –

+0

有没有机会看到你正在运行的SQL? – brianestey

+0

public void InsertSub(int SubCode,string SubName,DateTime date,string user) string sql1 =“插入到Inv_Sub_Stores的值(”+ SubCode +“,'”+ SubName +“','”+ date +“' ,'+ user +“')”; SqlCommand com = new SqlCommand(sql1,ConnectionManager.Connection()); com.ExecuteNonQuery(); ConnectionManager.Connection()。关(); } – Nuu

回答

5

整个用户实例和AttachDbFileName =方法是有缺陷的 - 在最好的!在Visual Studio中运行应用程序时,它将复制.mdf文件(从您的App_Data目录到输出目录 - 通常为.\bin\debug) - 最有可能为,您的INSERT工作得很好 - 但是您只是看着错误.mdf文件到底!

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

在我看来真正的解决方案

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

  2. 安装SQL Server Management Studio中快速

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

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

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

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

+0

问题解决了。谢谢。 – Nuu

0

我也有类似的问题。

您可以删除.mdf和bin文件夹日志文件,然后在app.config文件路径更改为类似下面这样

的connectionString =“数据源= \ SQLEXPRESS; AttachDbFilename = C:\ Path \ yourdatabasefile.mdf;集成安全性= True;用户实例= True“

相关问题