首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库连接错误-第一次异常

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

Stack Overflow用户
提问于 2015-05-29 23:36:43
回答 1查看 1.1K关注 0票数 1

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

代码语言:javascript
复制
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‘(CLRv4.0.30319: WFDBApp.vshost.exe):已加载的WFDBApp.vshost.exe符号已加载。'WFDBApp.vshost.exe‘(CLRv4.0.30319: WFDBApp.vshost.exe):已加载的WFDBApp.vshost.exe跳过装载符号。对模块进行了优化,并启用了调试器选项“只是我的代码”。'WFDBApp.vshost.exe‘(CLRv4.0.30319: WFDBApp.vshost.exe):已加载的WFDBApp.vshost.exe跳过装载符号。对模块进行了优化,并启用了调试器选项“只是我的代码”。'WFDBApp.vshost.exe‘(CLRv4.0.30319: WFDBApp.vshost.exe):已加载的WFDBApp.vshost.exe跳过装载符号。对模块进行了优化,并启用了调试器选项“只是我的代码”。 第一次出现'System.Data.SqlClient.SqlException‘类型的异常发生在System.Data.dll中,线程0x1788已经退出代码259 (0x103)。线程0x1428与代码259 (0x103)一起退出。程序'7048 WFDBApp.vshost.exe‘已退出代码0 (0x0)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-30 00:44:43

错误很可能是由不正确的连接字符串引起的。有几个指向Server文件的连接字符串的规范示例.mdf (请参阅MSDN:https://msdn.microsoft.com/en-us/library/jj653752%28v=vs.110%29.aspx):

使用localDB语法:

代码语言:javascript
复制
<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" />

其他可能的备选办法如下:

代码语言:javascript
复制
<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" />

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

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

希望这能帮上忙。诚挚的问候,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30540619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档