牛腩新闻发布系统看了16集了,以下是这16集视频中知识点的罗列:
- sql内连接查询
- sql注入
- 存储过程
- 触发器
- Sqlhelper
- 存储过程如何在代码中调用
- ……
这些似乎都是在二次重构机房中自学学到的东西,心中顿时生气了一股怒火,培养计划中为什么不把牛腩新闻发布系统安排在个人重构之前学习呢,那么在个人重构的时候就会容易很多,但是转念一想:就像在个人重构中我只是套用了别人写的sqlhelper的模板,并简单学会了使用,在牛腩新闻发布系统中,我才知道了的sqlhelper的一步步的形成,我想每次的学习都会对所学的知识有不一样的认识或者有更为深入的了解,才是学习吧!
如果说,在二次重构中我只是学会了使用某些知识,我是把这些知识当做工具来对待的,那么在牛腩中我才真正地了解了他们:例如SQLHelper,SQLHelper将增删改查sql语句分为两大类,分别是增删改和查,又分别将增删改和查分为有参数的和无参数的:
- 有参数的增删改sql语句和存储过程;
- 无参数的增删改sql语句和存储过程;
- 有参数的查sql语句和存储过程;
- 无参数的查sql语句和存储过程
我相信跟我在同一水平的同学(比我水平高的同学一定也都知道),一定知道SQLHelper分为这四种类型,但我接下来要讨论的是,SQLHelper是在什么基础上,将复杂的各种查询语句,存储过程分成了这四种类型。
无参增删改
cmd = new SqlCommand(cmdText, getConn());
cmd.CommandType = Commandtype.Text;
res = cmd.ExecuteNonQuery();
有参增删改
cmd = new SqlCommand(cmdText, GetConn())
cmd.Parameters.AddRange(paras);
cmd.CommandType = Commandtype.Text;
res = cmd.ExecuteNonQuery();
无参查询
DataTable dt = new DataTable();
cmd = new SqlCommand(cmdtext, GetConn());
cmd.CommandType = CommandType.StoredProcedure;
SqlDataReader sdr =cmd.ExecuteReader();
dt.Load(sdr);
有参查询
DataTable dt=new DataTable();
cmd = new SqlCommand(cmdtext, GetConn());
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange (paras );
SqlDataReader sdr =cmd.ExecuteReader();
dt.Load(sdr);
没错!是sqlCommand对象,此对象拥有很多属性,例如CommandType属性,设置此属性的值,可将cmd的执行分为执行存储过程(CommandType.StoredProcedure)和SQL语句(Commandtype.Text),通过设置Parameters.AddRange方法可将cmd的执行分为有参数执行命令和无参数执行命令。此外还通过调用sqlCommand的构造函数引用了数据库连接对象,使sqlCommand有权对此数据库中的表进行操作,通过构造函数还为sqlCommand提供了数据库增删改查语句或者数据库中的存储过程名!
期望下次再与SQLHelper相遇,希望下次下次相遇时,能在一种全新的环境,SQLHelper能换一种装扮,让我认识到不一样的SQLHelper!