SQLHelper是什么?
是基于.Net Framework 的数据库操作组件。简单理解为是数据库的小助手类。
主要是应用高内聚低耦合的方法,简化重复写的SQLConnection,SqlCommand,SQLDataReader等。
它主要封装后只需要给方法传入参数和连接字符串,就可以访问数据库了。
一开始是什么样子?

- SqlConnection——表示一个到SQL Server数据库的打开的连接
- SqlCommand——表示允许你制定在数据库上执行的操作的liex烈性,比如select insert update delect
- SqlDataReader——表示数据库读取行的只进流方式
重构之后什么样子?
public class SQLHelper
{
private SqlConnection conn = null;
private SqlCommand cmd = null;
private SqlDataReader sdr = null;
public SQLHelper()//SQLHelper的构造方法
{
string connStr = @"server = LMX-PC\SQLEXPRESS;database= newssystem; User ID= sa;Password = 123456";//数据库
conn = new SqlConnection(connStr);//与数据建立连接
}
public SqlConnection GET()
{
//如果 数据库状态= 关闭
if (conn.State ==ConnectionState.Closed )
{
conn.Open();//打开数据库
}
return conn;//返回装填
}
/// <summary>
/// 该方法对传入的参数进行增删改SQL语句执行
/// </summary>
public int ExecuteNonQuery(string sql)
{
int res;
cmd = new SqlCommand(sql, GET());
res = cmd.ExecuteNonQuery();
//如果 数据库状态= 连接
if (conn.State==ConnectionState.Open )
{
//那么把它关闭
conn.Close();
}
return res;
}
/// <summary>
/// 执行SQL 查询操作
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public DataTable ExecuteQuery(string sql)
{
DataTable dt = new DataTable();//需要返回datetable类型,所以实例化
cmd = new SqlCommand(sql,GET());
sdr = cmd.ExecuteReader();
dt.Load(sdr);
/如果 数据库状态= 连接
if (conn.State==ConnectionState.Open )
{
//那么把它关闭
conn.Close();
}
return dt;
}
对上面代码的详解:
这里对SQLHelper进行了重构,对它应该有了进一步认识。SQLHelper和数据库有着密切的关联在string ConnStr= @"server = LMX-PC\SQLEXPRESS;database= newssystem; User ID= sa;Password = 123456"; 这句找到数据库的语句。如果我们对数据的ID和密码进行了修改还需要打开源代码ji进行修改,这样增加了耦合。所以为了减少这样的麻烦。
就用到了配置文件Web.config:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5.2"/>
<httpRuntime targetFramework="4.5.2"/>
</system.web>
<!--
这是刚刚在SQLHelper里面的找到数据库的位置的语句
-->
<appSettings/>
<connectionStrings>
<add name ="connStr" connectionString="server = LMX-PC\SQLEXPRESS;database= newssystem; User ID= sa;Password = 123456"/>
</connectionStrings>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
</configuration>
那么对应SQLHelper的部分修改为:
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;//提供应用程序对数据库的访问
小编今天先理解到这里,这里的学问感觉还有很多,还需要慢慢理解。
欢迎大家交流给予指正! |