才开始接触数据库的人在碰到数据库的操作时,通常是一个直接在事件中书写关于数据库操作的代码,也许他也隐隐约约的觉得应该把这些很多地方相似的操作和公共方法放在一个地方方便执行,接下来要说的就是公共类的编写。
我准备编写一个SqlHelper类来执行各种数据库操作和方法,在过程中可能有各种不同的写法。主要包括5个方法,分别为Getcon、
1.Getcon方法
Getcon方法主要用来连接数据库,使用ConfigurationManager对象的AppSetting属性值获取配置节中连接数据库的字符串实例化SqlConnection对象,并返回该对象。代码如下:
/// <summary>
/// 连接数据库
/// </summary>
/// <returns>返回SqlConnection对象</returns>
public SqlConnection Getcon()
{
return new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());
}
2.sqlEx(string cmdstr)方法
sqlEx方法主要采用SqlCommand对象执行数据库操作,如添加、修改、删除等,包括一个string字符型参数,用来接收具体执行的SQL语句。执行该方法后,成功则返回1;失败则返回0.代码如下:
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdstr">SQL语句</param>
/// <returns>返回值为int型:成功返回1,失败返回0</returns>
public int sqlEx(string cmdstr)
{
SqlConnection con = Getcon();//连接数据库
con.Open();//打开连接
SqlCommand cmd = new SqlCommand(cmdstr, con);
try
{
cmd.ExecuteNonQuery();//执行SQL语句并返回受影响的行数
return 1;
}
catch (Exception e)
{
return 0;
}
finally
{
con.Dispose();//释放连接对象资源
}
}
readDt方法通过SQL语句查询数据库中的数据,并将查询结果存储在DataSet数据集中,最终将该数据集中存储查询结果的数据表返回。代码如下:
/// <summary>
/// 执行SQL查询语句
/// </summary>
/// <param name="cmdstr">查询语句</param>
/// <returns>返回DataTable数据表</returns>
public DataTable readDt(string cmdstr)
{
SqlConnection con = Getcon();
SqlDataAdapter da = new SqlDataAdapter(cmdstr, con);
DataSet ds = new DataSet();
da.Fill(ds);
return (ds.Tables[0]);
}
4.readDr(string str)方法
readDr方法将执行此语句的结果存储在一个SqlDataReader对象中,最后将这个SqlDataReader对象返回到调用处。代码如下:
/// <summary>
/// 执行SQL查询语句
/// </summary>
/// <param name="str">查询语句</param>
/// <returns>返回SqlDataReader对象dr</returns>
public SqlDataReader readDr(string str)
{
SqlConnection conn = Getcon();//连接数据库
conn.Open();//打开连接
SqlCommand com = new SqlCommand(str, conn);
SqlDataReader dr = com.ExecuteReader(CommandBehavior.CloseConnection);
return dr;//返回SqlDataReader对象dr
}