我自己感觉学程序是有个逐步的过程的,刚开始学和.net与数据库交互是在c#中的command命令中写一些数据库操作的代码,如:
select * from student where studentID = @studentID
update student set studentName=@StudentName where studentID = @studentID
insert into student (studentID,studentName) values(@studentID,@StudentName )
再后来知道sql语句有注入等功能,而且为了保护数据的安全性,以及数据分层架构更加清晰,让程序做程序的事,数据库处理数据相关的东西,知道了应用存储过程——create PROCEDURE ,但是这个时候储存过程还只能实现单一的功能,比如说更新,比如说插入
再到最后认真思考思考发现对一张表的插入和删除其实可以用一个存储过程来解决,可以对一些sql语句和存储过程进行优化。如:
通过一个ID号来判断是需要插入新记录还是修改记录
往往我们对于表中数据的获取是不定的,有时候需要前三个字段,有时候需要后面几个字段,这时候没有必要每一种需求方式都写一个存储过程,直接用一个存储过程读出所有可能需要的字段,然后在程序中根据需要做绑定。
还有就是多查询的实现,如何去实现那?下面例子中是两个查询条件,如果有多个话,只要增加参数就可以了。
如果我有时候需要对studentID排序,有时候又需要对studentName排序,是不是要写两个存储过程啊?其实不需要,我们可以加一个排序字段作为变量,动态指定排序的字段。下面的例子中默认情况下用studentID做排序字段。
我们经常在网站或者其他地方看到cridview控件中每一列都有一个checkbox按钮,然后可以选择多行一起删除,也就是批量删除功能。首先我们把要删除的列的所有值存储在一个串中,用“|”符号去分隔,用循环去读取。