畢業(yè)總結(jié):學(xué)會(huì)舉一反三你才能省時(shí)而高效,一通百通!
命名空間:
socut.data
cdata 類
實(shí)現(xiàn)功能:讀取(dataset方式),插入,更新,刪除,統(tǒng)計(jì)
調(diào)用方法:
public cdata mydata=new cdata();
實(shí)際操作:
1,讀取
public dataset ds=new dataset(); //此dataset類已經(jīng)由微軟封裝提供
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,統(tǒng)計(jì)
mydata.getexecutescalar("select * from 表 where 條件",統(tǒng)計(jì)類型)
統(tǒng)計(jì)類型分兩種:
int 整型:1
double 帶小數(shù)點(diǎn):2 (記憶方法:如果你知道double在英文單詞中有“雙倍”的意思,那么類型對(duì)應(yīng)值自然可以聯(lián)想到“2”)
creader類實(shí)現(xiàn)功能:讀取(datareader閱讀器方式)
調(diào)用方法:
public creader dr;
實(shí)際操作:
dr=new creader("select * from 表 where 條件");
//
if(dr.read())
{
//如果特定條件的值存在,立即終止下一行的讀取
}//
while(dr.read)
{
//循環(huán)讀取符合條件的值
}//
調(diào)用讀取出來的值:
dr["列名"]
使用完后關(guān)閉:dr.close();
更多擴(kuò)展功能
1,如何實(shí)現(xiàn)搜索功能?
答:使用getdataset,或是creader都可以實(shí)現(xiàn)的,因?yàn)樗揪褪且粋€(gè)數(shù)據(jù)庫(kù)內(nèi)容的讀取。關(guān)鍵的只是sql語(yǔ)句的使用,應(yīng)該為select * from 表名1 where 列1 like ‘要搜索的關(guān)鍵字’
2,如何實(shí)現(xiàn)文章閱讀總數(shù)的統(tǒng)計(jì)?
答:需要將所有符合要求的列作一次加法運(yùn)算,使用getexecutescalar的統(tǒng)計(jì)功能就可以實(shí)現(xiàn)了,示例:double d1=(double)getexecutescalar(“select sum(要統(tǒng)計(jì)的列名) from 表名1 where 條件”,2);
3,我如何開發(fā)論壇,或是商城?
答:論壇的功能幾乎跟新聞系統(tǒng)一樣的,你只要再加一個(gè)回復(fù)功能。提示:在原新聞表中新建一列,0代表主貼,大于0的數(shù),則代表此貼是跟貼、所要跟貼的主貼id是xx。商城的購(gòu)物車,事實(shí)上就是使用session將購(gòu)買內(nèi)容暫存,最后結(jié)賬時(shí)一次性插入數(shù)據(jù)庫(kù)。
4,在開發(fā)論壇時(shí),讀取貼子的同時(shí)我還要顯示用戶的信息,得同時(shí)讀取兩個(gè)表,如何辦?
答:可用getdataset或creader實(shí)現(xiàn),因?yàn)檫@只是數(shù)據(jù)庫(kù)的讀取。關(guān)鍵還是sql語(yǔ)句的使用:select * from 新聞表,用戶表 where 新聞表.發(fā)貼者姓名=用戶表.用戶注冊(cè)名
5,我想讓最新的文章排在最上面,如何辦?
答:可用getdataset或creader實(shí)現(xiàn),因?yàn)檫@只是數(shù)據(jù)庫(kù)的讀取。關(guān)鍵是sql語(yǔ)句中的order by的asc(升序)或desc(降序)的使用。示例:select * from 表名1 where 條件 order by 時(shí)間列 desc6,如何防止黑客的sql注入? (嚴(yán)重程序:極高)
答:最基本的要過濾“ ’ ”符號(hào),這樣可以避免黑客構(gòu)造sql語(yǔ)句。如本新聞系統(tǒng)的第16節(jié),用戶登陸時(shí),要先將textbox1.text.replace(“’”,””)一次,再執(zhí)行sql語(yǔ)句。還有插入數(shù)據(jù)時(shí),也同樣要使用replace過濾。
7,要實(shí)現(xiàn)數(shù)據(jù)庫(kù)一鍵切換功能,要注意什么?
答:access與sql server的sql語(yǔ)句事實(shí)上還是一些差別的。比如刪除語(yǔ)句,在access中,可以使用delete * from 也可以用delete from ,而sql server 只能使用delete from 。另外,在數(shù)據(jù)庫(kù)數(shù)據(jù)切換時(shí),原數(shù)據(jù)的默認(rèn)值屬性均會(huì)丟失。所以,要實(shí)現(xiàn)數(shù)據(jù)庫(kù)一鍵切換,要注意兩點(diǎn):
1,使用共用的sql語(yǔ)句;
2,盡量避免使用默認(rèn)值(如自動(dòng)編號(hào),改用guid編碼)。
新聞熱點(diǎn)
疑難解答
圖片精選