1

请帮忙解决这个编码错误?我是 C# 和 SQL 的新手,需要一些快速帮助。

这是我已经拥有的代码,当我调试时出现问题,当我到达时会抛出错误

string ConnectionString = ConfigurationManager
                              .ConnectionStrings["Student1"]
                              .ConnectionString;

错误信息是

未处理空引用异常。

无论我做什么,我似乎都无法修复这个错误。有任何想法吗?

static class Program
public static SqlConnection GetConnection
{
    get
    {
        string ConnectionString = ConfigurationManager
                                      .ConnectionStrings["Student1"]
                                      .ConnectionString;
        SqlConnection con = new SqlConnection(ConnectionString);
        con.Open();
        return con;
    }
}
4

2 回答 2

3

您必须验证配置文件中是否有连接字符串

<configuration>
  <connectionStrings>
    <add name="Student1"
         connectionString="...."
         providerName="...." />
  </connectionStrings>
  ....
于 2012-08-07T13:28:48.330 回答
1

除了其他答案之外,可能值得指出您收到此错误的原因。

基本上你的代码在这里:

string ConnectionString = ConfigurationManager.ConnectionStrings["Student1"].ConnectionString;

正在尝试访问该ConfigurationManager.ConnectionStrings集合,如果未找到值,此集合的索引器将返回 NULL(其他一些集合将引发索引超出范围异常)

该值很可能为 NULL,因为您缺少 app.config 中的连接字符串 - 但由于您没有检查索引器返回的连接字符串对象是否为 null 并且您正在尝试使用它的值,所以抛出空引用异常

一个好的检查是:

var conn = ConfigurationManager.ConnectionStrings["Student1"];

if(conn == null) throw new Exception("No connection string in config file"); // etc

string ConnectionString = conn.ConnectionString;

这样,如果连接字符串不存在,您可以抛出更有意义的异常

于 2012-08-07T13:36:52.297 回答