人事薪酬专员:asp.net三层架构调用方法问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/09 14:08:31
小弟在数据层定义了一个连接数据库的方法SQL()
我想在表示层调用他,该怎么写语句?!
小弟新手,请高手多多发贴指教啊`!~!
public class SQL
{
private string ConnectionString;
private string Sql;
private SqlConnection thisConnection;
private SqlCommand thisCommand;
public SQL()
{
//
// TODO: 在此处添加构造函数逻辑
//
ConnectionString="Server=(local);User id=sa;Pwd=;Database=ty";
Sql="SELECT ty_id,ty_date,person,state from tytable where ty_id='id'";
thisConnection = new SqlConnection(ConnectionString);
thisCommand = new SqlCommand(Sql,thisConnection);
thisCommand.CommandType=CommandType.Text;
thisCommand.Connection.Open();
SqlDataReader dr= thisCommand.ExecuteReader();

}

}

我看到了你的定义,在这里给你几点意见
你写了一个SQL类,但是这个类中只有属性如sqlconnection,sqlcommand等等.
还有一个构造函数,用于对属性变量时入初始化,这是没有问题的,但是你没有定义该类的方法也就是成员函数,而且属性全部都是Private(私有成员)在类外是无法访问的,这样会使你的类,对外没有任何可以访问的接口是一个没有用的类,你不可以这样改一下:
public class SQL
{
private string ConnectionString;
private string Sql;
private SqlConnection thisConnection;
private SqlCommand thisCommand;
public SQL()
{
//
// TODO: 在此处添加构造函数逻辑
//
ConnectionString="Server=(local);User id=sa;Pwd=;Database=ty";
thisConnection = new SqlConnection(ConnectionString);
}

SqlDataReader public ExecuteSql(string newsql)
/*一个方法功能是执行newsql给出的SQL语句反回一个装有执行结果的SqlDataReader对象*/
{
Sql=newsql;
thisCommand=new sqlCommand(sql,thisConnection);
thisCommand.CommandType=CommandType.Text;
thisCommand.Connection.Open();
SqlDataReader dr=thisCommand.ExecuteReader();
return dr;
}

}
可以这样调用
...
SQL sql1;
sql1=new SQL();
SqlDataReader dr=new SqlDataReader();
dr=sql1.ExecuteSql("SELECT ty_id,ty_date,person,state from tytable where ty_id='id'")
...