电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

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


发布日期:2023/12/26
 

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

命名空间

SocutData

CData 类

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

调用方法

public CData myData=new CData();

实际操作

读取

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

ds=myDataGetDataSet(SELECT * FROM 表 WHERE 条件开始行多少行虚拟表名);

插入

myDataGetExecuteNonQuery(INSERT INTO 表 (列) VALUES (变量变量));

更新

myDataGetExecuteNonQuery(UPDATE 表 SET 列=变量A=变量B WHERE 条件);

删除

myDataGetExecuteNonQuery(DELETE 表 WHERE 条件);

统计

myDataGetExecuteScalar(SELECT * FROM 表 WHERE 条件统计类型)

统计类型分两种

int 整型

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

CReader类实现功能读取(DataReader阅读器方式)

调用方法

public CReader dr;

实际操作

dr=new CReader(SELECT * FROM 表 WHERE 条件);

//

if(drRead())

{

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

}//

while(drRead)

{

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

}//

调用读取出来的值

dr[列名]

使用完后关闭drClose();

更多扩展功能

如何实现搜索功能?

使用GetDataSet或是Creader都可以实现的因为它根本就是一个数据库内容的读取关键的只是SQL语句的使用应该为SELECT * FROM 表名 WHERE 列 LIKE 要搜索的关键字

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

需要将所有符合要求的列作一次加法运算使用GetExecuteScalar的统计功能就可以实现了示例double d=(double)GetExecuteScalar(SELECT SUM(要统计的列名) FROM 表名 WHERE 条件);

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

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

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

可用GetDataSet或CReader实现因为这只是数据库的读取关键还是SQL语句的使用SELECT * FROM 新闻表用户表 WHERE 新闻表发贴者姓名=用户表用户注册名

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

可用GetDataSet或CReader实现因为这只是数据库的读取关键是SQL语句中的ORDER BY的ASC(升序)或DESC(降序)的使用示例SELECT * FROM 表名 WHERE 条件 ORDER BY 时间列 DESC如何防止黑客的SQL注入? (严重程序极高)

最基本的要过滤 符号这样可以避免黑客构造SQL语句如本新闻系统的第用户登陆时要先将TextBoxTextReplace()一次再执行SQL语句还有插入数据时也同样要使用Replace过滤

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

Access与SQL Server的SQL语句事实上还是一些差别的比如删除语句在Access中可以使用DELETE * FROM 也可以用DELETE FROM 而SQL Server 只能使用DELETE FROM 另外在数据库数据切换时原数据的默认值属性均会丢失所以要实现数据库一键切换要注意两点

使用共用的SQL语句

尽量避免使用默认值(如自动编号改用GUID编码)

上一篇:关于Socket编程项目之后经验谈

下一篇:不同映射模式下的直线输出的效果问题