从应用设置 app.config 文件调用连接字符串到 C# 代码
本文关键字:字符串 连接 代码 调用 文件 应用 设置 app config | 更新日期: 2023-09-27 18:35:05
>我正在尝试从 app.config 文件调用连接字符串到 C# 代码。这是 app.config 代码:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="connectstring" value="Data Source=server111;Initial Catalog=database1; Integrated Security=False;Persist Security Info=False; User ID=username;Password=password;Encrypt=True; TrustServerCertificate=True; MultipleActiveResultSets=True"/>
</appSettings>
</configuration>
这是 C# 代码:
private SqlConnection connStudent;
connStudent = new SqlConnection(ConfigurationManager.AppSettings["connectstring"].ToString());
connStudent.Open();
代码应该是正确的,但是我得到了一个空引用异常,并且在调试程序时,connStudent始终为空并且没有获得连接字符串。错误是"对象引用未设置为对象的实例"。
如果您使用的是 .NET 2.0 或更高版本 使用以下
<connectionStrings>
<add name="myConnectionString" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>
然后
string connStr = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
你的代码很好。 检查以确保您的 copy to output directory
属性设置为 copy always
或 copy if newer
。 如果这仍然不起作用,请尝试删除临时obj
文件。
以下测试代码工作正常。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="connectstring" value="Data Source=server111;Initial Catalog=database1; Integrated Security=False;Persist Security Info=False; User ID=username;Password=password;Encrypt=True; TrustServerCertificate=True; MultipleActiveResultSets=True"/>
</appSettings>
</configuration>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Configuration;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
try
{
SqlConnection connStudent;
connStudent = new SqlConnection(ConfigurationManager.AppSettings["connectstring"].ToString());
//connStudent.Open();
//connStudent.Close();
Console.WriteLine("ok");
}
catch
{
Console.WriteLine("error");
}
}
}
}