2015-04-19 41 views
-2

当我在数据库中添加数据时,我无法找到它,但它显示给我,它被添加,但是当我重新运行应用程序时,运行该应用程序我找不到 这是我的SqlConnection:当我重新运行应用程序时,我无法在数据库中找到数据

SqlConnection conn = new SqlConnection(@"Server=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|direct.mdf;Trusted_Connection=Yes;Integrated Security=True;User Instance=True"); 

,我使用应用程序配置,因为我想DEPLOYE我的机器的客户

<add name="DIRECTPERFERMANCE.Properties.Settings.directConnectionString" 
connectionString="Server=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\direct.mdf;Trusted_Connection=Yes;Integrated Security=True;User Instance=True" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 
+0

试试这个http://stackoverflow.com/a/29558863/4513879 –

+1

告诉我们你的代码实际写入数据库。 –

+0

您是否在您的项目文件之间包含了您的MDF文件?如果是,“复制到输出目录”属性的值是什么? – Steve

回答

0

整个用户实例和AttachDbFileName =应用方法有缺陷 - 最好!当运行在Visual Studio中的应用程序,它会围绕.mdf文件被复制(从App_Data目录输出目录 - 通常.\bin\debug - 在你的应用程序运行)和最有可能,你INSERT的作品就好了 - 但你只是看着错误.mdf文件到底!

如果你想坚持使用这种方法,然后尝试把一个断点在myConnection.Close()呼叫 - 然后检查.mdf文件与SQL Server管理Studio Express的 - 我几乎可以肯定你的数据是存在的。

在我看来真正的解决方案

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

  2. 安装SQL Server Management Studio中快速

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

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

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

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

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

+0

我尝试添加数据,但它显示我错误代码实例。 Data Source =。\\ SQLEXPRESS; Database = Direct; Integrated Security = True – SIMO

相关问题