首页 > 开发 > 综合 > 正文

毕业总结:学会举一反三,扩展更多功能

2024-07-21 02:24:46
字体:
来源:转载
供稿:网友

毕业总结:学会举一反三你才能省时而高效,一通百通!

命名空间:

socut.data

 cdata 类

实现功能:读取(dataset方式),插入,更新,删除,统计

调用方法:

public cdata mydata=new cdata();

实际操作:

1,读取

public dataset ds=new dataset(); //此dataset类已经由微软封装提供

ds=mydata.getdataset("select * from 表 where 条件",开始行,多少行,"虚拟表名");

2,插入

mydata.getexecutenonquery("insert into 表 (列1,列2) values (变量1,变量2)");

2,更新

mydata.getexecutenonquery("update 表 set 列1=变量a,列2=变量b where 条件");

3,删除

mydata.getexecutenonquery("delete 表 where 条件");

5,统计

mydata.getexecutescalar("select * from 表 where 条件",统计类型)

统计类型分两种:

int 整型:1

double 带小数点:2 (记忆方法:如果你知道double在英文单词中有“双倍”的意思,那么类型对应值自然可以联想到“2”)

creader类实现功能:读取(datareader阅读器方式)

调用方法:

public creader dr;

实际操作:

dr=new creader("select * from 表 where 条件");

//

if(dr.read())

{

//如果特定条件的值存在,立即终止下一行的读取

}//

while(dr.read)

{

//循环读取符合条件的值

}//

调用读取出来的值:

dr["列名"]

使用完后关闭:dr.close();

更多扩展功能

  1,如何实现搜索功能?

答:使用getdataset,或是creader都可以实现的,因为它根本就是一个数据库内容的读取。关键的只是sql语句的使用,应该为select * from 表名1 where 列1 like ‘要搜索的关键字’

2,如何实现文章阅读总数的统计?

答:需要将所有符合要求的列作一次加法运算,使用getexecutescalar的统计功能就可以实现了,示例:double d1=(double)getexecutescalar(“select sum(要统计的列名) from 表名1 where 条件”,2);

3,我如何开发论坛,或是商城?

答:论坛的功能几乎跟新闻系统一样的,你只要再加一个回复功能。提示:在原新闻表中新建一列,0代表主贴,大于0的数,则代表此贴是跟贴、所要跟贴的主贴id是xx。商城的购物车,事实上就是使用session将购买内容暂存,最后结账时一次性插入数据库。

4,在开发论坛时,读取贴子的同时我还要显示用户的信息,得同时读取两个表,如何办?

答:可用getdataset或creader实现,因为这只是数据库的读取。关键还是sql语句的使用:select * from 新闻表,用户表 where 新闻表.发贴者姓名=用户表.用户注册名

5,我想让最新的文章排在最上面,如何办?

答:可用getdataset或creader实现,因为这只是数据库的读取。关键是sql语句中的order by的asc(升序)或desc(降序)的使用。示例:select * from 表名1 where 条件 order by 时间列 desc6,如何防止黑客的sql注入? (严重程序:极高)

答:最基本的要过滤“ ’ ”符号,这样可以避免黑客构造sql语句。如本新闻系统的第16节,用户登陆时,要先将textbox1.text.replace(“’”,””)一次,再执行sql语句。还有插入数据时,也同样要使用replace过滤。

7,要实现数据库一键切换功能,要注意什么?

答:access与sql server的sql语句事实上还是一些差别的。比如删除语句,在access中,可以使用delete * from 也可以用delete from ,而sql server 只能使用delete from 。另外,在数据库数据切换时,原数据的默认值属性均会丢失。所以,要实现数据库一键切换,要注意两点:

  1,使用共用的sql语句;
  2,尽量避免使用默认值(如自动编号,改用guid编码)。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表