11.15三层架构DAL层SqlHelper

DAL层引用Model层,

BLL层引用DAL层和Model层,

UI层引用BLL层与Model层,

 

需要调用每层方法时,需要将需要调用的层引入命名空间。并且都需要调用Model层。

sql防注入
select * from info where name='1001 or 1=1' and pwd=123456
1.屏蔽特殊符号。
2.参数化

using的用法

1.引入命名空间
2.垃圾自动回收
3.命名空间别名

创建步骤:

1.引入命名空间Configuration;

//创建数据库链接字符串

private static string strConn = ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString;

//2.创建新的DataTable对象,准备用来存储数据
DataTable table = new DataTable();
//3.创建dta对象,也是固定的,后面两个参数,第一个sql是指的sql语句,后者是数据库链接字符串
SqlDataAdapter dataAdapter = new SqlDataAdapter(sql,strConn);
//4.判断sql语句是否执行成功并查询到至少一条数据
if (sqlParameters.Length>0)
{ //5.还是把数据放到了dataset对象里面,也就是table里
dataAdapter.SelectCommand.Parameters.AddRange(sqlParameters);
}
//6.调用dataadapter的fill方法
dataAdapter.Fill(table);
//7.返回table
return table;

单条查询:

//创建conn对象
SqlConnection sqlConnection = new SqlConnection(strConn);
//打开数据库
sqlConnection.Open();
//创建comm对象
SqlCommand sqlCommand = new SqlCommand(sql,sqlConnection);
if (sqlParameters.Length > 0)
{
sqlCommand.Parameters.AddRange(sqlParameters);
}
//关闭数据库
SqlDataReader dataReader = sqlCommand.ExecuteReader(CommandBehavior.CloseConnection);
return dataReader;

非查询:

int num = 0;
//创建新的DataTable对象,准备用来存储数据
using (SqlConnection sqlConnection = new SqlConnection(strConn)) {
//创建comm对象
using (SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection)) {
sqlCommand.CommandType = type;
try
{
//打开数据库
sqlConnection.Open();
if (sqlParameters.Length > 0)
{
sqlCommand.Parameters.AddRange(sqlParameters);
}
//进行数据传输
num = sqlCommand.ExecuteNonQuery();
}
finally
{
//判断数据库是否处于打开
if (sqlConnection.State == ConnectionState.Open)
//关闭数据库
sqlConnection.Close();
}
//sqlConnection.Dispose();
//返回数据
return num;
}
}

 

 

posted @ 2021-11-16 21:00  东黎  阅读(116)  评论(0)    收藏  举报