Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据未保存在数据库中无运行时错误_C#_Sql_Sql Server_Database - Fatal编程技术网

C# 数据未保存在数据库中无运行时错误

C# 数据未保存在数据库中无运行时错误,c#,sql,sql-server,database,C#,Sql,Sql Server,Database,我正在用C#和sql server数据库开发windows窗体应用程序。我可以插入和检索数据,但只能在运行时进行。如果我再次运行它,它不会显示以前插入的数据 connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True" 整个用户实例和AttachDbFileName=方法都有缺陷-最多!在Visual

我正在用C#和sql server数据库开发windows窗体应用程序。我可以插入和检索数据,但只能在运行时进行。如果我再次运行它,它不会显示以前插入的数据

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.mdf;Integrated Security=True;User Instance=True"
整个用户实例和AttachDbFileName=方法都有缺陷-最多!在Visual Studio中运行应用程序时,它将围绕
.mdf
文件进行复制(从
app\u Data
目录复制到输出目录-通常是
\bin\debug
-应用程序运行的地方)和最有可能是,您的
INSERT
工作正常-但您最后看到的是错误的.mdf文件

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

我认为真正的解决办法是

  • 安装SQL Server Express(您已经完成了安装)

  • 安装SQL Server Management Studio Express

  • 在SSMS Express中创建数据库,并为其指定一个逻辑名称(例如
    MyDB

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

    Data Source=.\\SQLEXPRESS;Database=MyDB;Integrated Security=True
    
    其他一切都和以前一样

  • 整个用户实例和AttachDbFileName=方法都有缺陷-最多!在Visual Studio中运行应用程序时,它将围绕
    .mdf
    文件进行复制(从
    app\u Data
    目录复制到输出目录-通常是
    \bin\debug
    -应用程序运行的地方)和最有可能是,您的
    INSERT
    工作正常-但您最后看到的是错误的.mdf文件

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

    我认为真正的解决办法是

  • 安装SQL Server Express(您已经完成了安装)

  • 安装SQL Server Management Studio Express

  • 在SSMS Express中创建数据库,并为其指定一个逻辑名称(例如
    MyDB

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

    Data Source=.\\SQLEXPRESS;Database=MyDB;Integrated Security=True
    
    其他一切都和以前一样


  • 我也有类似的问题

    您可以删除bin文件夹中的.mdf和日志文件,然后将app.config文件中的路径更改为如下所示


    connectionString=“Data Source=。\SQLEXPRESS;AttachDbFilename=C:\Path\yourdatabasefile.mdf;integratedsecurity=True;User Instance=True”

    我遇到了类似的问题

    您可以删除bin文件夹中的.mdf和日志文件,然后将app.config文件中的路径更改为如下所示


    connectionString=“Data Source=。\SQLEXPRESS;AttachDbFilename=C:\Path\yourdatabasefile.mdf;Integrated Security=True;User Instance=True”

    给我们看看您尝试插入数据的代码怎么样?到目前为止,您只向我们显示了连接字符串。是否有机会看到您正在运行的SQL?public void InsertSub(int SubCode,string SubName,DateTime date,string user){string sql1=“Insert into Inv_Sub_存储值(“+SubCode+”,“+SubName+”,“+date+”,“+user+”)”;SqlCommand com=new SqlCommand(sql1,ConnectionManager.Connection());com.ExecuteNonQuery();ConnectionManager.Connection().Close();}请不要将代码示例或示例数据放入注释中-因为您无法格式化它,所以读取它非常困难。。。。取而代之的是:通过编辑你的问题来更新它,以提供额外的信息!谢谢。给我们看看你用来插入数据的代码怎么样?到目前为止,您只向我们显示了连接字符串。是否有机会看到您正在运行的SQL?public void InsertSub(int SubCode,string SubName,DateTime date,string user){string sql1=“Insert into Inv_Sub_存储值(“+SubCode+”,“+SubName+”,“+date+”,“+user+”)”;SqlCommand com=new SqlCommand(sql1,ConnectionManager.Connection());com.ExecuteNonQuery();ConnectionManager.Connection().Close();}请不要将代码示例或示例数据放入注释中-因为您无法格式化它,所以读取它非常困难。。。。取而代之的是:通过编辑你的问题来更新它,以提供额外的信息!非常感谢。