最佳解答者
判斷資料重複輸入

問題
-
我是用c# 2008的
請問我想要ㄧ個簡單 判斷輸入的資料是否重複應該怎麼做呢??
如果資料表(abc)就只有兩個欄位 編號(a) 跟姓名(b)
然後兩個TextBox 跟一個Button、Lable,當我按下Button的時候如果姓名已經存在,就用Lable顯示資料重複 ,請問這樣要怎麼做呢?? 是要下sql跟try catch嗎??
sql是要用 where 姓名=姓名 還是count(姓名) > 1呢? 還是別的....
try catch 又要怎麼寫阿?
謝謝
謝謝各位!! 可以了!!- 已編輯 touraco 2009年5月8日 上午 06:34
解答
-
touraco:
你是要判斷在資料表中有無重覆的姓名欄位吧?
這可以寫一段函式,用sqlDataReader來做
example:
Dim strConn As String
strConn = [你的連線字串]
Dim MyConn As SqlConnection
Dim MyDataReader As SqlDataReader
Dim MyCmd As SqlCommand
Dim MyAuth As Boolean
Dim SQLStr As String = "Select *[也可以隨便選一個欄位] from 你的資料表 Where 姓名欄位=@參數1 "
MyConn = New SqlConnection(strConn)
MyCmd = New SqlCommand(SQLStr, MyConn)
MyCmd.Parameters.AddWithValue("@參數1", 你要傳來判斷的變數)
MyConn.Open()
MyDataReader = MyCmd.ExecuteReader()
myAuth = MyDataReader.Read()
MyDataReader.Close()
MyConn.Close()
如果myAuth=True,就表示此姓名已存在
[這是用VB.NET2005寫的,可自行修改為C#]- 已編輯 Bill ChungMVP 2009年5月6日 上午 02:17 增加使用語言說明
- 已提議為解答 Johnny.Net 2009年5月6日 上午 02:54
- 已標示為解答 Lolota Lee 2009年5月8日 上午 01:13
-
SqlConnection conn = new SqlConnection("your connection string"); SqlCommand cmd = new SqlCommand("SELECT ISNULL(COUNT(EmployeeID), 0) FROM Employees WHERE Name = @name", conn); // 假設你的表格是 Employees,有一個 EmployeeID 和 Name 欄位。 cmd.Parameters.AddWithValue(@name, name); // name 是你要比對的名稱。 conn.Open(); bool result = (Convert.ToInt32(cmd.ExecuteScalar()) == 0) ? false : true; // 回傳 0 表示不存在,否則存在。 conn.Close(); conn = null; cmd = null;
小人物一枚。
- 已標示為解答 Lolota Lee 2009年5月8日 上午 01:13
所有回覆
-
touraco:
你是要判斷在資料表中有無重覆的姓名欄位吧?
這可以寫一段函式,用sqlDataReader來做
example:
Dim strConn As String
strConn = [你的連線字串]
Dim MyConn As SqlConnection
Dim MyDataReader As SqlDataReader
Dim MyCmd As SqlCommand
Dim MyAuth As Boolean
Dim SQLStr As String = "Select *[也可以隨便選一個欄位] from 你的資料表 Where 姓名欄位=@參數1 "
MyConn = New SqlConnection(strConn)
MyCmd = New SqlCommand(SQLStr, MyConn)
MyCmd.Parameters.AddWithValue("@參數1", 你要傳來判斷的變數)
MyConn.Open()
MyDataReader = MyCmd.ExecuteReader()
myAuth = MyDataReader.Read()
MyDataReader.Close()
MyConn.Close()
如果myAuth=True,就表示此姓名已存在
[這是用VB.NET2005寫的,可自行修改為C#]- 已編輯 Bill ChungMVP 2009年5月6日 上午 02:17 增加使用語言說明
- 已提議為解答 Johnny.Net 2009年5月6日 上午 02:54
- 已標示為解答 Lolota Lee 2009年5月8日 上午 01:13
-
SqlConnection conn = new SqlConnection("your connection string"); SqlCommand cmd = new SqlCommand("SELECT ISNULL(COUNT(EmployeeID), 0) FROM Employees WHERE Name = @name", conn); // 假設你的表格是 Employees,有一個 EmployeeID 和 Name 欄位。 cmd.Parameters.AddWithValue(@name, name); // name 是你要比對的名稱。 conn.Open(); bool result = (Convert.ToInt32(cmd.ExecuteScalar()) == 0) ? false : true; // 回傳 0 表示不存在,否則存在。 conn.Close(); conn = null; cmd = null;
小人物一枚。
- 已標示為解答 Lolota Lee 2009年5月8日 上午 01:13
-
Hi,
您可以參考下列資料:
try catch:
http://msdn.microsoft.com/zh-tw/library/0yd65esw(VS.80).aspx
另外您提到要在按鈕按下時去判斷, 下列是Button Event list, 您可以嘗試去找出符合您要的事件:
http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.button_events.aspx
微軟技術支援中心(CSS) - http://twitter.com/msdn_taiwan