C 與sqlserver結合實現登入和退出介面

2021-10-23 06:10:35 字數 2392 閱讀 6940

登入

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.threading.tasks;

using system.windows.forms;

using system.data.sqlclient;

namespace winstudent

private

void

label1_click

(object sender,

eventargs e)

private

void

label2_click

(object sender,

eventargs e)

private

void

btnlogin_click

(object sender,

eventargs e)

if(string.

isnullorempty

(upwd)

)//與資料庫通訊,檢察輸入與資料庫是否一致

;//建立command物件

sqlcommand cmd =

newsqlcommand

(sql, conn)

; cmd.parameters.

clear()

;//先清空

cmd.parameters.

add(parauname)

; cmd.parameters.

add(userpwd)

;//新增陣列

//開啟連線

conn.

open()

;//最晚開啟,最早關閉

//執行命令,要求必修在連線狀態 opened

object o = cmd.

executescalar()

;//執行查詢結果返回第一行第一列的值,忽略其他行和列

//關閉連線

conn.

close()

;//處理結果

if(o ==

null

|| o == dbnull.value ||((

int)o)==0

)else

}//返回的結果進行不同的提示

}private

void

btnexit_click

(object sender,

eventargs e)

}}

但是這裡存在sql注入

修改內容:

//寫查詢語句

string sql =

"select count(1) from userinfo where username=@username and userpwd=@userpwd"

;//新增引數

sqlparameter parauname =

newsqlparameter

("username"

, uname)

;sqlparameter userpwd =

newsqlparameter

("userpwd"

, upwd)

;//建立command物件

sqlcommand cmd =

newsqlcommand

(sql, conn)

;cmd.parameters.

clear()

;//先清空

cmd.parameters.

add(parauname)

;cmd.parameters.

add(userpwd)

;

但是如果有多個引數,這樣寫就太複雜了

用陣列操作

sqlparameter[

] paras =

;

//新增陣列

//建立command物件

sqlcommand cmd =

newsqlcommand

(sql, conn)

;cmd.parameters.

addrange

(paras)

;

c 與鍊錶結合

用鍊錶管理貨物,用指標指向這個個鍊錶 定義乙個類goods 定義乙個goods next 方法buy head,w sale head 在buy中會呼叫有引數的建構函式,使得總重加上w,並且將新的貨物加入鍊錶,sale只使得貨物從鍊錶刪除即可,因為減重是自動呼叫析構函式得到的,因為sale中用了de...

C 結合GDAL實現中值濾波

private void btnmiddlefilter click object sender,eventargs e gdal.allregister 更改讀寫許可權 dataset srcds gdal.open openfilename,access.ga update datatype s...

c語言的左結合性與右結合性

右結合性,就是在表示式中最右邊的操作最先執行,然後從右到左依次執行 左結合性的操作符 如位操作符 和 則是從左至右依次執行 在標準c語言的文件裡,對操作符的結合性並沒有做出非常清楚的解釋。乙個滿分的回答是 它是仲裁者,在幾個操作符具有相同的優先順序時決定先執行哪乙個。每個操作符擁有某一級別的優先順序...