数据库核心文档

  • 格式:docx
  • 大小:15.72 KB
  • 文档页数:5

1)数据访问层核心代码数据库连接是程序与数据库之间的桥梁,可以说没有数据库连接就不可能实现程序与数据库之间的数据交换。

数据库连接属于数据访问层的内容,下面给出了数据库连接的关键代码。

public class DataBase{public SqlConnection GetConnection(){//初始化数据库链接字符串string myStr =ConfigurationManager.ConnectionStrings["Mispersonalconn"].ToString();SqlConnection myConn = new SqlConnection(myStr);return myConn;}读写数据库是软件最常见的操作。

在更新数据库表的记录时,需要返回此次操作所影响的记录数。

在数据访问层中,将这样的操作写成一个固定的函数,在业务逻辑层中,通过调用该函数实现对数据库的操作,代码如下:public void ExecNonQuery(SqlCommand myCmd){try{if (myCmd.Connection.State != ConnectionState.Open){myCmd.Connection.Open(); //打开与数据库的连接}//使用SqlCommand对象的ExecuteNonQuery方法执行SQL语句,并返回受影响的行数myCmd.ExecuteNonQuery();}catch (Exception ex){throw new Exception(ex.Message, ex);}finally{if (myCmd.Connection.State == ConnectionState.Open)myCmd.Connection.Close(); //关闭与数据库的连接}}}在执行数据库操作时,经常要对表进行检索,有时检索结果只有一条符合,但有时会有多条记录。

因此,在执行检索时,会将符合条件的记录保存在数据集中,并返回数据集。

对于此类查询,通过数据访问层的代码实现。

关键代码如下:public DataTable GetDataSet(SqlCommand myCmd, string TableName){SqlDataAdapter adapt;//初始化一个数据集DataSet ds = new DataSet();try{if (myCmd.Connection.State != ConnectionState.Open){myCmd.Connection.Open();}adapt = new SqlDataAdapter(myCmd);//填充数据集adapt.Fill(ds, TableName);//返回数据集return ds.Tables[TableName];}catch (Exception ex){//抛数据库操作异常throw new Exception(ex.Message, ex);}finally{if (myCmd.Connection.State == ConnectionState.Open){//关闭数据库连接myCmd.Connection.Close();2)业务逻辑层核心代码在三层架构体系中,业务逻辑层主要完成系统业务的逻辑处理,它从用户表示层获取用户提交的数据,经过一系列的处理后,提交给数据访问层。

数据访问层接受来自业务逻辑层的指令,执行对数据库表的操作,并将数据库操作的结果反馈给业务逻辑层,业务逻辑层再将这些数据传给用户表示层。

考虑到用户表示层代码很多,受篇幅限制,下面只给出系统用户操作的业务逻辑层代码。

public class UserLoginService{//初始化一个数据库方法DataBase db = new DataBase();//取登录用户的密码、角色信息public DataTable GetByNamePwdRole(string username, string password, string role){string sqlstr = "select * from Tb_User_Login where isnull(userName,'')='" +username + "' and isnull(userPass,'')='" + password + "'and isnull(userRole,'')='" + role + "'";//返回操作结果return db.GetDataSetStr(sqlstr, "tbuser");}//新增一个新的系统用户public void InsertNewUser(string id, string username, string password, stringrole){string sqlstr = "insert into [Tb_User_Login] values('" + id + "','" + username + "','" + password + "','" + role + "')";//返回数据库操作结果db.ExecNonQuery(db.GetCommandStr(sqlstr));}//根据用户名返回用户信息public DataTable GetBindSourceByUsername(string username){string sqlstr = "select ID 用户编号,userName 用户名,userRole 用户权限from [Tb_User_Login] where userName='" + username + "'";//返回数据库操作结果return db.GetDataSetStr(sqlstr, "datasource");}//删除指定的系统用户信息public void Delete(string id){string sqlstr = "delete from [Tb_User_Login] where [ID]='" + id + "'";//执行数据库操作结果db.ExecNonQuery(db.GetCommandStr(sqlstr));}//更新用户密码public void UpdatePwd(string id, string password,string role){string sqlstr = "update [Tb_User_Login] set userPass='" + password + "',userRole='" + role + "' where ID='" + id + "'";//执行数据库操作db.ExecNonQuery(db.GetCommandStr(sqlstr));}}3)用户层核心代码用户层的作用主要完成从系统界面获取用户输入的数据或将业务逻辑层反馈的数据显示在页面中。

受篇幅限制,下面只给出系统用户信息编辑的用户层代码。

//编辑页面加载时,调用绑定用户信息的函数protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){string id=Request["ID"];string name=Request["userName"];Session["ID"] = id;Session["userName"] = name;//置用户ID、用户名为不可编辑状态this.TxtUserID.Enabled = false;this.TxtUser.Enabled = false;//绑定用户信息Bond();}}//绑定用户信息private void Bond(){string id = Session["ID"].ToString(); UserLoginService uls = new UserLoginService(); DataTable dt = uls.Find(id);dt.DefaultView.Sort = "ID";//将数据库检索的用户信息保存在临时数据集中int index=dt.DefaultView.Find(id);//将数据集中的用户信息绑定在界面中TxtUserID.Text = dt.Rows[index]["ID"].ToString(); TxtUser.Text = dt.Rows[index]["userName"].ToString(); TxtPass.Text = dt.Rows[index]["userPass"].ToString(); TxtPass1.Text = dt.Rows[index]["userPass"].ToString(); }。