连接数据库封装成类,减少代码冗余度,增强代码可读性。
1、类的构造
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
namespace Test
{
public class DbSql
{
public SqlConnection conn = null;
public SqlDataAdapter da = null;
public SqlCommand com = null;
public DbSql()
{
//string connstr = "server=.;Database=library;uid=sa;pwd=123";
//conn = new SqlConnection(connstr);
//com = new SqlCommand();
//com.Connection = conn;
string connstr = "server=.;Database=library;uid=sa;pwd=123";
conn = new SqlConnection(connstr);
com = new SqlCommand();
com.Connection = conn;
da = new SqlDataAdapter("", conn);
}
/// <summary>
/// 根据查询语句,将查询结果以DataTable类型返回,如果执行的是各种更新语句,则返回值无意义。
/// </summary>
/// <param name="selectSql"></param>
/// <returns>查询结果</returns>
public DataTable FillDt(string selectSql)
{
//com.CommandType = CommandType.Text;
//com.CommandText = "select * from student";
//da = new SqlDataAdapter(com);
//DataTable dt = new DataTable();
//da.Fill(dt);
//return dt;
DataTable dt = new DataTable();
da.SelectCommand.CommandText = selectSql;
da.Fill(dt);
return dt;
}
/// <summary>
/// 执行各种SQL语句
/// </summary>
/// <param name="Sql">true表示执行成功,false表示执行失败</param>
/// <returns></returns>
public bool ExecSql(string Sql)
{
bool r = false;
conn.Open();
com.Connection = conn;
com.CommandType = CommandType.Text;
com.CommandText = Sql;
com.ExecuteNonQuery();
conn.Close();
r = true;
return r;
}
}
}
2、类是使用
DbSql db = new DbSql(); //类的实例化
DataTable dt = new DataTable();
string strSql = "insert into student(sno,sname,ssex,sage) values('3','王鹏','男',20)";
db.ExecSql(strSql); //调用类的ExecSql()方法,实现定义的strSql语句
dt = db.FillDt("select * from student"); //调用类的FillDt()方法,实现对数据库的查询
this.GridView1.DataSource = dt;
this.GridView1.DataBind();