2010-05-22 37 views
2

我是一個初學者編碼器,我正在建立一個項目使用C#Asp.Net在其中我註冊用戶與用戶ID,現在我的問題是,如何檢查用戶ID是已經存在於用戶表中或者當用戶試圖註冊時,我正在使用sql server 2000?如何檢查用戶標識已存在

+0

你在使用它們來訪問數據庫技術? – 2010-05-22 06:25:05

+0

我正在使用ado.net – Sheery 2010-05-22 06:29:30

+0

嗨,我正在使用這個,但它給出了一個錯誤CS0103:名稱'User_id'在當前上下文中不存在。我的代碼示例是這樣的 con = new SqlConnection(「server = NEW-80DF4B540E3; database = Cv_Manage; uid = sa; pwd = micron」); cmd = new SqlCommand(「select * from tbl_userlogin where User_id = username。文本「,con); 如果(username.Text == User_id) { MessageBox.Show(」User Id already exists「); } – Sheery 2010-05-22 06:45:20

回答

10

根據你評論中的代碼,我想說你需要的是一個關於如何使用ADO.NET查詢數據的好介紹性教程,如果任何人都可以推薦的話。

首先,你不能只在你的查詢中使用「username.Text」,SQL Server對你的ASP.NET頁面一無所知,它是「用戶名」TextBox。

你需要一個參數傳遞到您的SqlCommand(不永遠建立像一個字符串+ username.Text,如果你想知道谷歌爲「SQL注入攻擊」,「從tbl_userlogin其中USER_ID =選擇*」爲什麼),像這樣:

SqlCommand cmd = new SqlCommand("select * from tbl_userlogin where User_id = @UserID", con); 
    SqlParameter param = new SqlParameter(); 
    param.ParameterName = "@UserID"; 
    param.Value = username.Text; 
    cmd.Parameters.Add(param); 

然後,您需要實際執行該命令並從中獲取SqlDataReader。你不能只在你的C#代碼中引用數據庫中的字段,這就是你得到CS0103編譯錯誤的原因。

SqlDataReader reader = cmd.ExecuteReader(); 

現在,您的SqlDataReader具有查詢結果。既然你關心的是它是否找到了某些東西,你可以使用HasRows屬性來檢查它是否返回任何東西。

if (reader.HasRows) 
    { 
     MessageBox.Show("User Id already exists"); 
    } 

閱讀上SqlDataReader對象 - http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx - 學習如何實際訪問的結果,如果你需要。

3

你可以簡單地查詢從數據庫中用戶:

select * from User where user_id=<new-input-id> 

如果有任何記錄,這意味着,用戶被引導,如果沒有,你可以將其插入到表中。

+0

嗨,我使用這個,但它給錯誤CS0103:我的代碼示例是這樣的 con = new SqlConnection(「server = NEW-80DF4B540E3; database = Cv_Manage; uid = sa; pwd = micron」); cmd = new SqlCommand(「select * from tbl_userlogin where User_id = username.text「,con); if(username.Text == User_id) {MessageBox.Show(」User Id already exists「);} – Sheery 2010-05-22 06:47:48

+0

你缺少一些基礎知識:你運行了查詢並檢查其是否正確?查詢 - 從tbl_userlogin中選擇*其中User_id ='username.text',並且是您的代碼中聲明的User_id? – 2010-05-22 07:01:49

+0

User_id i是表tbl_userlogin的數據庫字段,其中username是用戶輸入值的文本框 – Sheery 2010-05-22 07:06:39

0

它很簡單。首先嚐試獲取(選擇)所需用戶的記錄。

`Select * from UserTable where userId = <your-input-userid>` 

如果返回任何記錄其平均用戶是已經存在。
如果沒有記錄返回,則意味着相同的用戶標識不存在,並且您將此用戶標識用於新用戶。

相關問題