配置文件配置连接字符串
对比之前的文档,每个对数据库的操作都要定义string类型的连接字符串,这样的操作在实际运用中不可用,将数据库连接写死了,代码迁移性较差,需要做大量修改。程序设计过程中对于已知的,可能发生变化的部分,需作出优化,尽可能的不修改代码或者少量修改代码。
优化连接字符串的方法:
1.将连接字符串以及一些操作封装到一个SqlHelper类的方法(修改少量代码)。
此方法不推荐使用。当把项目打包之后在只有安装包的情况下,就不可以对数据库连接做出修改,导致项目无法正常运行
using System;
using System.Data.SqlClient;
namespace ConnectionString
{
public class GetConnStringHelper
{
public static string GetCurrentString()
{
return "server=.;uid=sa;pwd=123456;database=ars";
}
}
class Program
{
static void Main(string[] args)
{
string connText = GetConnStringHelper.GetCurrentString();//获取封住的连接字符串
SqlConnection conn = new SqlConnection(connText);//创建数据库连接
conn.Open();//打开数据库
Console.WriteLine(conn.State);
}
}
}
2.将连接字符串写入配置文件中。
可以做到不该任何代码实现改变数据库连接。每个程序或者项目都有App.config文件,符合xml规范。通过配置文件的修改可以实时的影响程序。
连接字符串写入配置文件有以下两种方式:
- 利用配置文件中一般存储数据的方式(基于运用程序的节点配置)
<appSettings> <add key="SqlConn" value="server=.;uid=sa;pwd=123456;database=ars"/> </appSettings>
- 在配置文件中微软提供专用配置节点(基于连接字符串的节点配置)
<connectionStrings> <add name="SqlConText" connectionString="server=.;uid=sa;pwd=123456;database=ars"/> </connectionStrings>
具体操作步骤:
添加完配置信息之后,还需要添加微软类库引用。具体实现如下:
完整代码:
App.config文件中的代码:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="SqlConText" connectionString="server=.;uid=sa;pwd=123456;database=ars"/>
</connectionStrings>
<appSettings>
<add key="SqlConn" value="server=.;uid=sa;pwd=123456;database=ars"/>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>
运行代码:
using System;
using System.Configuration;
using System.Data.SqlClient;
namespace ConConfig
{
class Program
{
static void Main(string[] args)
{
//*******配置运用程节点序方式*******//
//获取配置文件AppSettings中存储的数据
Console.WriteLine("方式一");
string sqlText1=ConfigurationManager.AppSettings["SqlConn"].ToString();
Console.WriteLine(sqlText1);
SqlConnection conn = new SqlConnection(sqlText1);
conn.Open();
Console.WriteLine(conn.State);
conn.Close();
Console.WriteLine(conn.State);
Console.WriteLine();
//*******配置连接字符串节点方式*******//
Console.WriteLine("方式二");
string sqlText2 = ConfigurationManager.ConnectionStrings["SqlConText"].ToString(); //获取配置文件中存储的数据
Console.WriteLine(sqlText1);
SqlConnection con = new SqlConnection(sqlText1);
conn.Open();
Console.WriteLine(conn.State);
conn.Close();
Console.WriteLine(conn.State);
Console.ReadKey();
}
}
}
运行结果:
连接字符串写入配置文件总结:
- 将连接字符串写入配置文件
- 添加类库引用
- 在主程序代码中添加using System.Configuration
- 调用ConfigurationManager类获取连接字符串
注:只有在控制台程序和winform运用中需要调用类库。