我正在用C#开发windows表单应用程序与sql server数据库。我只能在运行时插入和检索数据。如果我再次运行它,它不会显示以前插入的数据。数据没有被保存在数据库中没有运行时错误
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True"
我正在用C#开发windows表单应用程序与sql server数据库。我只能在运行时插入和检索数据。如果我再次运行它,它不会显示以前插入的数据。数据没有被保存在数据库中没有运行时错误
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True"
整个用户实例和AttachDbFileName =方法是有缺陷的 - 在最好的!在Visual Studio中运行应用程序时,它将复制.mdf
文件(从您的App_Data
目录到输出目录 - 通常为.\bin\debug
) - 最有可能为,您的INSERT
工作得很好 - 但是您只是看着错误.mdf文件到底!
如果你想坚持这种方法,那么试着在myConnection.Close()
调用上放一个断点 - 然后用SQL Server Mgmt Studio Express检查.mdf
文件 - 我几乎可以确定你的数据在那里。
在我看来真正的解决方案将
安装SQL Server Express(和你已经做到这一点无论如何)
安装SQL Server Management Studio中快速
在中创建您的数据库SSMS Express,给它一个逻辑名称(例如MyDB
)
使用其逻辑数据库名称连接到它(在服务器上创建时给出) - 并且不要乱用物理数据库文件和用户实例。在这种情况下,您的连接字符串将是这样的:
Data Source=.\\SQLEXPRESS;Database=MyDB;Integrated Security=True
和其他一切是正是和以前一样......
问题解决了。谢谢。 – Nuu
我也有类似的问题。
您可以删除.mdf和bin文件夹日志文件,然后在app.config文件路径更改为类似下面这样
的connectionString =“数据源= \ SQLEXPRESS; AttachDbFilename = C:\ Path \ yourdatabasefile.mdf;集成安全性= True;用户实例= True“
您如何向我们展示您用于尝试插入数据的代码?到目前为止,您只向我们显示了连接字符串。 –
有没有机会看到你正在运行的SQL? – brianestey
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