1.DataSet与DataTable
DataSet就是一个集合,内存数据库,临时数据库。
DataTable是一张表。
2.SqlDataAdapter
数据适配器:只需要给定连接字符串和要执行的sql语句,它就可以自动创建连接对象,命令对象并且执行到的结果调用fill()方法可以将查询出来的结果填充到DataTable对象中。
2.使用带参数的SQL语句向数据库插入空值
【向数据库中插入空值,必须使用DBNULL】
3.索引
索引的目的:提高查询效率
分类:聚集索引、非聚集索引
缺点:会增加额外的存储空间,同时也降低了增加、修改、删除的效率
4.子查询
相关子查询执行逻辑 【Exists括号里面的只要查询到了一条数据就是返回true,并不会继续查询下去。】
5.多条件查询-使用带参数的SQL语句
在还没有学习ef框架技术,来体验原生态动态sql的编写吧!
整体思路:两个集合,一个是存放条件,另外一个存放参数。
StringBuilder sbSQL = new StringBuilder("select * from book");
List<string> wheres = new List<string>();
List<SqlParameter> listParameters = new List<SqlParameter>();
//将条件和参数化对象添加进集合中。
if(txtbookName.Text.Trim().Length>0)
{
wheres.add(" BookName like @bKname");
listParameters.add(new SqlParameter("@bKname",SqlDbType.NVarChar,100){
Value = "%"+txtbookName.Text.Trim()+"%";//实现模糊查询
}
}
//拼接SQL语句
if(wheres.Count>0)//只要这里为真即用户一定输入了条件。
{
sbSQL.Append( " where");//只要有查询条件就拼接一个where.
sbSQL.Append(string.Join(" and",wheres));
}
SqlParameter[] pms = listParameters.ToArray();
SqlHelper.ExecuteReader(sbSQL.ToString(),pms);