一、SQL语句执行组件:
1、 用组件实现的原因
在原有项目中包含着大量的重复代码,只是在连接数据库上用了一个连接类,考虑到功能性,实现松耦合的软件编程思想,故将SQL语句的执行用组件实现,也实现了类似项目的代码重用性。
2、 该组件包含的功能
(1) 能在执行SQL语句之前自动连接数据库,进行按需连接,当执行完SQL语句后,自动关闭连接。
(2) 能执行INSERT,UPDATE,DELETE功能的操作。
(3) 能执行返回结果为RESULT,STRING,INT三种类型的SELECT语句。
(4) 插入、删除、更新三种功能用一个插删改方法实现,避免不同功能的繁琐的方法调用。
(5) 对不同返回值的查询语句的调用,用函数重载实现,使得所有查询均用同一函数实现。
3、 组件实现
public
class SQLExecute:ServicedComponent
{
SqlConnection conn;
public SQLExecute()
{
conn=new SqlConnection("server=.;database=eshop;uid=pang2;pwd=123");
}
public void InsDelUpd(string sqlstr)
{
try
{
conn.Open();
SqlCommand cmd1=new SqlCommand(sqlstr,conn);
cmd1.ExecuteNonQuery();
conn.Close();
}
catch
{
return e.Errors.ToString();
}
}
public DataSet SelSql(string sqlstr,DataSet ds)
{
try
{
conn.Open();
SqlDataAdapter sda=new SqlDataAdapter(sqlstr,conn);
DataSet ds1=new DataSet();
sda.Fill(ds1,"t1");
conn.Close();
return ds1;
}
catch
{
//
}
}
public string SelSql(string sqlstr,string str)
{
try
{
conn.Open();
SqlCommand cmd1=new SqlCommand(sqlstr,conn);
str=(cmd1.ExecuteScalar()).ToString();
conn.Close();
return str;
}
catch
{
//
}
}
public int SelSql(string sqlstr,int i)
{
try
{
conn.Open();
SqlCommand cmd1=new SqlCommand(sqlstr,conn);
i=System.Convert.ToInt32(cmd1.ExecuteScalar());
conn.Close();
return i;
}
catch
{
//
}
}
}
4、 不足之处:
(1) SQL语句的使用范围还有局限性。
SQL语句是相当灵活的,本组件并不是对所有的SQL语句都适用,只是对一些常用SQL语句的执行提供了支持。
(2) SELECT语句的执行方法还有待更完善。
为了实现函数重载,不得不使得每个
SELSQL
方法的参数均有所不同,添加了不同的标识参数,如
SELSQL
(
STRING SQLSTR
,
INT I
)中,参数
I
就标识该方法返回整数型,
I
参数的数据是多少都无所谓。虽然功能上没有任何问题,但从组件易用性方面来讲还需进一步完善。