关于建立数据库连接的多种方案
- 从配置文件中读取数据库信息
/*
* 方式1:从配置文件中读取数据库连接信息
* 1.添加System.Configuration引用,导入using System.Configuration;
* 2.取出ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString数据库连接字符串
* 3.根据此配置字符串建立数据库连接connection
* 4.后续数据库操作
* 5.配置文件就是项目默认的app.config文件或自己新建的xxx.config文件。
* */
从配置文件中读取连接信息。
//string connectionStr = ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString;
建立连接connection
//SqlConnection con = new SqlConnection(connectionStr);
打开链接
//con.Open();
为此连接创建命令行
//SqlCommand command = con.CreateCommand();
//command.CommandText = "select userID from tblUserRole";
使用dataReader读取数据库
//SqlDataReader sdr = command.ExecuteReader();
//while (sdr.Read())
//{
// Console.WriteLine(sdr["userID"]);
//}
//sdr.Close();
//con.Close();
//Console.ReadLine();
//配置文件添加方式
//ConfigurationSettings.AppSettings方式实现数据库连接驱动和字符串
//<appSettings>
//<add key="DbHelperProvider" value="System.Data.SqlClient"/>
//<add key="DbHelperConnectionString" value="Data Source=(local);Initial Catalog=DbHelperTest;Persist Security Info=True;User ID=sa;Password=sa"/>
//我的数据库连接字符串信息是:server=.;uid=sa;pwd=123;database=zhangweiTest,这里数据库认证方式不会,所以不能确定个人认证方式。
//appSettings>
//在程序中引用的方式
//private static string defaultProviderName = ConfigurationSettings.AppSettings["DbProviderName"];
//private static string defaultConnectionString = ConfigurationManager.AppSettings["DbConnectionString"];
/*ConfigurationManager.ConnectionStrings方式实现
*完整App.config文件
*<?xml version="1.0" encoding="utf-8" ?>
* <configuration>
* <startup>
* <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
* </startup>
* <connectionStrings>
* <add name="sqlcon" connectionString="server=.;uid=sa;pwd=123;database=zhangweiTest;" providerName="System.Data.SqlClient"/>
* </connectionStrings>
* </configuration>
*//在程序中引用方式
*//private static string defaultProviderName = ConfigurationManager.ConnectionStrings["sqlcon"].ProviderName;
*// private static string defaultConnectionString = ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString;
* */
- 硬编码方式
string connectionstr = "server=.;uid=sa;pwd=123;database=zhangweiTest";
SqlConnection con = new SqlConnection(connectionstr);
//打开链接
con.Open();
//为此连接创建命令行
SqlCommand command = con.CreateCommand();
command.CommandText = "select userID from tblUserRole";
//使用dataReader读取数据库
SqlDataReader sdr = command.ExecuteReader();
while (sdr.Read())
{
Console.WriteLine(sdr["userID"]);
}
sdr.Close();
con.Close();
Console.ReadLine();
- 抽象工厂模式下的多种类型数据库匹配
工厂模式的目的:减少代码修改量,只需要使用工厂产生不同的类型的数据库实例,就可以达到访问数据库的目的。比如以上面的硬编码的例子:如果现在后台的数据库变为mysql,你是不是得重新修改硬编码的访问SqlConnection得变为MysqlConnection了吧。你的修改量是很大的。
而工厂模式就是不同修改程序,只需要添加新的数据库类型就可以达到复用的目的。
抽象工厂模式:篇幅太多,在下一篇中详细讲述!