1、实现代码的复用
方法:编写一个通用方法
代码复用技术的应用要求:
原则:提取不变的,封装变化的
技巧:不变的作为“方法体”,变化的作为“参数”
封装SQLHelp类class SQLHelp,集成查询结果
为避免重复新建对象的数据处理,直接将方法定义成静态,可以从主程序中直接调用
数据库连接参数:字符串定义为成员变量
private static string connString = "Server=PC-20180530ADRL\\SQLEXPRESS;DataBase=StudentManageDB;Uid=sa;Pwd=201314";
(1)单一返回:封装ExecuteScalar方法
public static object GetSingleResult(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
object result = cmd.ExecuteScalar();
conn.Close();
return result;
}
对应调用:
static void Main(string[] args)
{
string sql = "select Count(*) from Students";
object result =SQLHelp.GetSingleResult(sql);
Console.WriteLine(result.ToString());
Console.Read();
}
(2)封装ExecuteNonQuery方法
/// <summary>
/// 更新数据操作(insert delete update )
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int Update(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
int result = cmd.ExecuteNonQuery();
conn.Close();
return result;
}
(3)封装ExecuteReader方法
public static SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection(connString);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader objReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
//CommandBehavior.CloseConnection参数能够保证在外部关闭DataReader时,与之关联的Connection对象将随之关闭
return objReader;
}
调用:
static void Main(string[] args)
{
string sql = "select StudentName from Students";
SqlDataReader objReader = SQLHelp.GetReader(sql);
while(objReader.Read())
{
Console.WriteLine(objReader["StudentName"]);
}
objReader.Close();
Console.Read();
}
网友评论