数据层代码的封装(Operdb)
数据层的主要目的是接受业务逻辑层的要求,并对数据库进行操作。如果有结果可能要把结果传回业务逻辑层。基本上数据层主要的功能如下:
***********************************
OperDb类
************************************
主要数据成员
************************************
con:sqlconnection
cmd:sqlcommand
ada:sqldataadapter
************************************
[构造函数]
*************************************
public Operdb(string DSN)
说明:DSN传入"连接字符串"
*************************************
[打开数据库]
*************************************
public OpenConnection()
{
if (con==null) //如果没有实例化,则先实例化
con=new sqlconnection(DSN)
if (con.State.ToString()=="Closed") //如果以前是关闭,就打开,避免二次打开 con.open();
}
*************************************
[关闭数据库]
*************************************
public CloseConnection()
{
if (con!=null &;&; con.State.ToString()=="open")
con.close();
}
*************************************
[得到一个sqlcommand]
(私有,在类的内部使用)
*************************************
private sqlcommand GetCommand(string sql)
{
if (cmd==null)
{
cmd=new sqlcommand();
cmd.connection=con;
}
cmdmandtext=sql;
return cmd;
}
*********************************************
[得到一个sqlcommand]
(私有,为了得到与无参存储过程有关的)
*********************************************
private sqlcommand GetCommand(string ProName)
{
if (cmd==null)
{
cmd=new sqlcommand();
cmd.connection=con;
}
cmd.CommandType=CommandType.StoredProcedure;
cmdmandtext=ProName;
return cmd;
}
*********************************************
[得到一个sqlcommand]
(私有,为了得到与有参存储过程有关的)
*********************************************
private sqlcommand GetCommand(string ProcName,ArrayList param)
{
int i;
if (cmd==null)
{
cmd=new sqlcommand();
cmd.connection=con;
}
cmd.CommandType=CommandType.StoredProcedure;
cmdmandtext=ProName;
for(i=0;i
cmd.Parameters.Add(param.item(i));
return cmd;
}
*************************************
[得到一个sqlcommand]
(私有,在类的内部使用)
*************************************
private sqlcommand GetCommand()
{
if (cmd==null)
{
cmd=new sqlcommand();
cmd.connection=con;
}
return cmd;
}
*************************************
[得到一个sqldataadapeter]
(私有,在类的内部使用)
*************************************
private sqldataadapeter GetDataAdapeter(string sql)
{
if (ada==null)
{
ada=new sqldataadapeter();
ada.connection=con;
}
ada.selectcommand=GetCommand(sql);
return ada;
}
*************************************
[得到一个sqldataadapeter]
(私有,在类的内部使用)
*************************************
private sqldataadapeter GetDataAdapeter()
{
if (ada==null)
{
ada=new sq
ldataadapeter();
ada.connection=con;
}
return ada;
}
*************************************
[执行sql语句](没有结果的)
*************************************
public RunSql(string sql)
{
cmd=GetCommand(sql);
cmd.ExecuteNonQuery();
}
*************************************
[执行sql语句](有结果的)
把执行的结果集放入表table里面,table为输出参数
*************************************
public void RunSql(string sql,out datat