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

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

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

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();//打開數據庫

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

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

cmd.Connection=conn;//設置連接

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

//定義參數

p.Value=this.TextBox1.Text;

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

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();//打開數據庫

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

cmd.CommandText=" checkLogin";//設置命令文本

cmd.CommandType=CommandType.StoredProcedure;

//設置文本類型

cmd.Connection=conn;//設置連接

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

//定義參數

p.Value=this.TextBox1.Text;

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

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ā)現成功通過驗證。

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

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

更多信息請查看IT技術專欄

更多信息請查看數據庫
易賢網手機網站地址:三種操作數據庫的途徑

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

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