数据库连接错误-第一次异常



我有以下c#代码用于VS2013中的数据库连接,当我运行时,我得到以下错误消息,我如何才能绕过它。

private void Form1_Load(object sender, EventArgs e)
{
    //using (SqlConnection conn = new SqlConnection())
    //{
    try
    {
        //con = new System.Data.SqlServerCe.SqlCeConnection();
        conn = new System.Data.SqlClient.SqlConnection();
        conn.ConnectionString = "Data Source=(LocalDB)v11.0;AttachDbFilename=C:\vs2013projects\WFDBApp\WFDBApp\Dbapp.mdf;Integrated Security=True";
        conn.Open();
        MessageBox.Show("Openned database well");
        conn.Close();
    }
    catch
    {
        MessageBox.Show("failed to connect");
        //conn.Close();
    }
    //}
}

错误信息:

'WFDBApp.vshost.exe' (CLR v4.0.30319: WFDBApp.vshost.exe):已加载"c: vs2013projects WFDBApp WFDBApp bin 调试 WFDBApp.exe"。符号加载。'WFDBApp.vshost.exe' (CLR v4.0.30319: WFDBApp.vshost.exe):加载Microsoft.Net的C: WINDOWS 会议 GAC_32 System.Transactions v4.0_4.0.0.0__b77a5c561934e089 System.Transactions.dll"。跳过加载符号。模块优化和调试选项"Just My Code"已启用。'WFDBApp.vshost.exe' (CLR v4.0.30319):WFDBApp.vshost.exe):加载Microsoft.Net的C: WINDOWS 会议 GAC_32 System.EnterpriseServices v4.0_4.0.0.0__b03f5f7f11d50a3a System.EnterpriseServices.dll"。跳过加载符号。模块优化和调试选项"Just My Code"已启用。'WFDBApp.vshost.exe' (CLR v4.0.30319):WFDBApp.vshost.exe):加载Microsoft.Net的C: WINDOWS 会议 GAC_32 System.EnterpriseServices v4.0_4.0.0.0__b03f5f7f11d50a3a System.EnterpriseServices.Wrapper.dll"。跳过加载符号。模块优化和调试选项'Just My Code'已启用。

类型的第一次机会异常"System.Data.SqlClient。在System.Data.dll中发生SqlException线程0x1788已退出,代码为259 (0x103)。线程0x1428有以代码259 (0x103)退出。程序'[7048]WFDBApp.vshost.exe'已退出,代码为0 (0x0)。

这个错误很可能是由错误的连接字符串引起的。有几个SQL Server Express文件连接字符串的规范示例。mdf(见MSDN pub: https://msdn.microsoft.com/en-us/library/jj653752%28v=vs.110%29.aspx):

)

使用localDB语法:

<add name="ConnectionStringName"
    providerName="System.Data.SqlClient"
    connectionString="Data Source=(LocalDB)v11.0;AttachDbFileName=|DataDirectory|DatabaseFileName.mdf;InitialCatalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True" />
<add name="ConnectionStringName"
    providerName="System.Data.SqlClient"
    connectionString="Server=(LocalDB)v11.0;Initial File Name=|DataDirectory|DatabaseFileName.mdf;Database=DatabaseName;Trusted_Connection=True;MultipleActiveResultSets=True" />

其他可能的选项如下:

<add name="ConnectionStringName"
    providerName="System.Data.SqlClient"
    connectionString="Data Source=.SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True"/>
<add name="ConnectionStringName"
    providerName="System.Data.SqlClient"
    connectionString="Data Source=.SQLEXPRESS;AttachDbFileName=|DataDirectory|DatabaseFileName.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True" />

选择与您的情况相关的一个,并确保您使用了正确的语法。

另外,请记住数据库(基于文件的SQL Express DatabaseFileName.mdf)可能是密码保护的:如果是这样,那么您必须将此信息包含到连接字符串中(通常出于安全目的,此类连接字符串存储在.config文件中)。在后面的常规代码中,您应该使用以@开头的逐字字符串(代替双反斜杠"\")。

希望这能有所帮助。最好的祝福,

相关内容

  • 没有找到相关文章

最新更新