为什么我的连接字符串为空

本文关键字:字符串 连接 我的 为什么 | 更新日期: 2023-09-27 18:24:54

我正在从sql数据库访问存储过程,但它在连接字符串点抛出:

"未设置对象引用"

代码:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
  </configSections>
  <connectionStrings>
    <add name="ConnectionString" connectionString="Data Source=HOME-PC;Initial Catalog=LMS;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

string conStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();

我在c#.net中使用windows窗体,我是个新手。

为什么我的连接字符串为空

从您的一条注释中,您的连接字符串似乎是在类库的app.config文件中定义的。如果是这种情况,您需要将配置文件中的连接字符串条目复制到实际应用程序的配置文件中——在本例中,是调用业务层库的Windows窗体应用程序。

我找到了两种可能的解决方案:
A.从App.config文件的连接字符串定义中删除providerName="System.Data.SqlClient"部分

B.在客户端代码的using部分添加一行"using System.Data.SqlClient;",您正试图在其中获取和使用connectionString,如下所示:

使用System.Data.SqlClient

//(…其他代码…)

string conStr=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString()

我的猜测是,在连接字符串上使用providerName选项会在执行时强制调用指定的提供程序。