三種操作數(shù)據(jù)庫的途徑
來源:易賢網(wǎng) 閱讀:913 次 日期:2015-02-12 11:57:55
溫馨提示:易賢網(wǎng)小編為您整理了“三種操作數(shù)據(jù)庫的途徑”,方便廣大網(wǎng)友查閱!

操作數(shù)據(jù)庫可以分這么三種,第一種,直接寫硬SQL代碼,不要參數(shù),第二種,直接寫硬代碼,要參數(shù),第三種,調(diào)用存儲過程。

我們以一個登錄模塊為例,現(xiàn)在頁面有兩文本框,一按紐,實現(xiàn)驗證用戶名密碼的功能。第一種方法主要代碼如下:

SqlConnection conn =new SqlConnection

("server=;database=news2;uid=sa;pwd=");

conn.Open();

SqlCommand cmd=new SqlCommand();

cmd.CommandText="select count(*)from users

where name='"+this.TextBox1.Text+"'and pwd='"+this.TextBox2.Text+"'";cmd.Connection=conn;int i=(int)cmd.ExecuteScalar();Response.Write(i.ToString());if(i==1){Response.Redirect("add.aspx");}else{Label1.Text="error!"}

第二種途徑

SqlConnection conn =new SqlConnection("server=;database=news;uid=sa;pwd=");

conn.Open();//打開數(shù)據(jù)庫

SqlCommand cmd=new SqlCommand();//建立命令對象

cmd.CommandText="select count(*)from users where and ";

cmd.Connection=conn;//設(shè)置連接

SqlParameter p= new SqlParameter("@name",SqlDbType.Char,10);

//定義參數(shù)

p.Value=this.TextBox1.Text;

cmd.Parameters.Add(p);//添加參數(shù)到集合

p= new SqlParameter("@pwd",SqlDbType.Char,10);

p.Value=this.TextBox2.Text;

cmd.Parameters.Add(p);

int i=(int)cmd.ExecuteScalar();

if(i==1)

{

Response.Redirect("add.aspx");}

else

{

Label1.Text="error!"

}

第三種途徑

SqlConnection conn =new SqlConnection("server=;database=news;uid=sa;pwd=");

conn.Open();//打開數(shù)據(jù)庫

SqlCommand cmd=new SqlCommand();//建立命令對象

cmd.CommandText=" checkLogin";//設(shè)置命令文本

cmd.CommandType=CommandType.StoredProcedure;

//設(shè)置文本類型

cmd.Connection=conn;//設(shè)置連接

SqlParameter p= new SqlParameter("@name",SqlDbType.Char,10);

//定義參數(shù)

p.Value=this.TextBox1.Text;

cmd.Parameters.Add(p);//添加參數(shù)到集合

p= new SqlParameter("@pwd",SqlDbType.Char,10);

p.Value=this.TextBox2.Text;

cmd.Parameters.Add(p);

int i=(int)cmd.ExecuteScalar();

if(i==1)

{

Response.Redirect("add.aspx");}

else

{

Label1.Text="error!"

}

接下來對這三種方法做分析:

第一方法不能防范SQL注入式方式攻擊,比如在第一個文本框輸入asd'or's'='s 第二個同樣輸入asd'or's'='s ,可以發(fā)現(xiàn)成功通過驗證。

第二種直接寫硬SQL代碼,事實上不是每個人都能寫出優(yōu)良的SQL代碼來,可以由數(shù)據(jù)庫管理員或工程師來寫,這樣,一方面減輕程序員的工作,另一方面也可以使數(shù)據(jù)庫與應(yīng)用程序保持獨立,這樣有利于系統(tǒng)的移植與維護。

當(dāng)然第三種是推薦使用的,好處呢!就是前面所寫的。

更多信息請查看IT技術(shù)專欄

更多信息請查看數(shù)據(jù)庫
易賢網(wǎng)手機網(wǎng)站地址:三種操作數(shù)據(jù)庫的途徑
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)