数据库核心文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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, strin
g 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, string
role)
{
string sqlstr = "insert into [Tb_User_Login] values('" + id + "','" + usernam
e + "','" + password + "','" + role + "')";
//返回数据库操作结果
db.ExecNonQuery(db.GetCommandStr(sqlstr));
}
//根据用户名返回用户信息
public DataTable GetBindSourceByUsername(string username)
{
string sqlstr = "select ID 用户编号,userName 用户名,userRole 用户权限fro