Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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# SQL连接错误的原因_C#_Sql_Asp.net_Visual Studio - Fatal编程技术网

C# SQL连接错误的原因

C# SQL连接错误的原因,c#,sql,asp.net,visual-studio,C#,Sql,Asp.net,Visual Studio,在我的ASP.NET C#WebForms应用程序中,我正在尝试连接到我的SQL数据库 连接后,我得到错误信息: 错误[IM002][Microsoft][ODBC驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序 我试图用谷歌搜索这个错误的含义,但结果并不能清楚地解释什么是错的。你能告诉我到底出了什么问题吗(它没有找到数据库文件,它找到了文件,但数据库文件的版本不正确,等等) 以下是我执行的步骤: 使用VS2013创建本地数据库。该文件位于“MyProjectPath\App\u Da

在我的ASP.NET C#WebForms应用程序中,我正在尝试连接到我的SQL数据库

连接后,我得到错误信息:

错误[IM002][Microsoft][ODBC驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序

我试图用谷歌搜索这个错误的含义,但结果并不能清楚地解释什么是错的。你能告诉我到底出了什么问题吗(它没有找到数据库文件,它找到了文件,但数据库文件的版本不正确,等等)

以下是我执行的步骤:

  • 使用VS2013创建本地数据库。该文件位于“MyProjectPath\App\u Data\Pages.mdf”中
  • 数据库由表和行填充
  • 我已通过“服务器资源管理器->连接到服务器->键入我的计算机用户名”连接到服务器。没有出现错误
  • 在服务器资源管理器中,我已经测试了与数据库的连接,并且成功了
  • 连接为“Microsoft SQL Server数据库文件(SqlClient)”
  • 我已将“ConnectionString”复制到web.config。重要的一点是字符串包含引号,我必须删除这些引号
  • 我是否需要启动外部应用程序,如SQLServerManagementStudio或其他什么
连接字符串:

数据源=(LocalDB)\v11.0;AttachDbFilename=“C:\VERY\u LONG\u PATH\u具有\u SPACES\App\u Data\Pages.mdf”;集成安全性=真

我删除以下引文:

<connectionStrings>
    <add name="MySQLConnStr" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\VERY_LONG_PATH_THAT_HAS_SPACES\App_Data\Pages.mdf;Integrated Security=True"/>
</connectionStrings>  

// My simple connection code where the runtime error occurs
try
{
    using (OdbcConnection connection = new OdbcConnection(ConfigurationManager.ConnectionStrings["MySQLConnStr"].ConnectionString))
    {
        // do stuff
    }
}
catch (Exception ex)
{
    Response.Write(ex.Message);
}

//发生运行时错误的简单连接代码
尝试
{
使用(OdbcConnection连接=新的OdbcConnection(ConfigurationManager.ConnectionString[“MySQLConnStr”].ConnectionString))
{
//做事
}
}
捕获(例外情况除外)
{
响应。写入(例如消息);
}

Hi要建立ODBC连接,您需要安装驱动程序。您可以建立sql连接,这应该可以工作。。 //将简单连接代码更改为

try
{
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MySQLConnStr"].ConnectionString);
    connection.open();
}
catch (Exception ex)
{
    Response.Write(ex.Message);
}

尝试以下三种解决方案,它将帮助你解决问题

  • 当为所有用户而不是当前用户选择安装驱动程序时,您需要在Administration Tools=>ODBC中配置DSN

  • 尝试在服务器上查找ODBC数据源管理员,该管理员可在“控制面板-->管理工具-->数据源(ODBC)”中找到。(在64位Windows系统上,必须显式调用c:\Windows\syswow64\odbcad32.exe)并将驱动程序添加到系统DSN选项卡

  • 如果ODBC驱动程序不是64位的,请尝试将应用程序编译为x86进程,它将正常工作


  • 您需要使用OdbcConnection吗?喜欢OLEDB。