Discussion:
在新增資料時如何判斷資料是否重複...
(时间太久无法回复)
cc
2006-07-10 02:48:02 UTC
Permalink
請問各位先進:
在新增資料時如何判斷資料是否重複...
假若我的DB是設計給會員註冊的AccountDB:
user_id(ini型態,每增加一筆會自動加1,也是Key欄位)
user_name(nvarchar型態) '不容許重覆
user_mail (nvarchar型態) '不容許重覆

Code:

Dim strSQL As String = " insert into sys_user (user_name...) values
(@user_name...)"
Dim myConnection As SqlConnection = new
SqlConnection(ConfigurationManager.AppSettings("dsn"))
Dim myCommand As SqlCommand = new SqlCommand strSQL, myConnection)
myCommand.Parameters.Add(new SqlParameter("@user_name", SqlDbType.NVarChar,
50))
myCommand.Parameters("@user_name").Value = user_account.Text

接下來要如何判斷...還是要改哪個部份?

謝謝^^
unknown
2006-07-10 08:15:01 UTC
Permalink
@@|||
你既然是用SQL Server就加Unique的Index來檢查就好啦
1.資料庫檢驗比較確實且快

2.不用額外寫程式...遇到重複資料要寫入時DB自動會幫你檔掉

3.加了這個Index查詢速度也會比較快


"cc" 來函:
Post by cc
在新增資料時如何判斷資料是否重複...
user_id(ini型態,每增加一筆會自動加1,也是Key欄位)
user_name(nvarchar型態) '不容許重覆
user_mail (nvarchar型態) '不容許重覆
Dim strSQL As String = " insert into sys_user (user_name...) values
Dim myConnection As SqlConnection = new
SqlConnection(ConfigurationManager.AppSettings("dsn"))
Dim myCommand As SqlCommand = new SqlCommand strSQL, myConnection)
50))
接下來要如何判斷...還是要改哪個部份?
謝謝^^
cc
2006-07-10 08:36:02 UTC
Permalink
Dear:
Unique指的是Key欄位嗎!
Key欄位不是只能指定1組,假若我有多個欄位不容許重覆
MS-SQL可以做到嗎

"台" 來函:
Post by unknown
@@|||
你既然是用SQL Server就加Unique的Index來檢查就好啦
1.資料庫檢驗比較確實且快
2.不用額外寫程式...遇到重複資料要寫入時DB自動會幫你檔掉
3.加了這個Index查詢速度也會比較快
"cc" 來函:
Post by cc
在新增資料時如何判斷資料是否重複...
user_id(ini型態,每增加一筆會自動加1,也是Key欄位)
user_name(nvarchar型態) '不容許重覆
user_mail (nvarchar型態) '不容許重覆
Dim strSQL As String = " insert into sys_user (user_name...) values
Dim myConnection As SqlConnection = new
SqlConnection(ConfigurationManager.AppSettings("dsn"))
Dim myCommand As SqlCommand = new SqlCommand strSQL, myConnection)
50))
接下來要如何判斷...還是要改哪個部份?
謝謝^^
cc
2006-07-10 09:11:01 UTC
Permalink
Dear:
DB是可設定成Unique,不過這是AccountDB是給會員註冊用的
因此是希望用code的方式來達成,
像帳號重覆,會有個message告訴user「帳號已存在...」之類的做法
謝謝~

"cc" 來函:
Post by cc
Unique指的是Key欄位嗎!
Key欄位不是只能指定1組,假若我有多個欄位不容許重覆
MS-SQL可以做到嗎
"台" 來函:
Post by unknown
@@|||
你既然是用SQL Server就加Unique的Index來檢查就好啦
1.資料庫檢驗比較確實且快
2.不用額外寫程式...遇到重複資料要寫入時DB自動會幫你檔掉
3.加了這個Index查詢速度也會比較快
"cc" 來函:
Post by cc
在新增資料時如何判斷資料是否重複...
user_id(ini型態,每增加一筆會自動加1,也是Key欄位)
user_name(nvarchar型態) '不容許重覆
user_mail (nvarchar型態) '不容許重覆
Dim strSQL As String = " insert into sys_user (user_name...) values
Dim myConnection As SqlConnection = new
SqlConnection(ConfigurationManager.AppSettings("dsn"))
Dim myCommand As SqlCommand = new SqlCommand strSQL, myConnection)
50))
接下來要如何判斷...還是要改哪個部份?
謝謝^^
unknown
2006-07-11 00:23:02 UTC
Permalink
這簡單呀...
你到DB去Create一個function
範例如下:

CREATE FUNCTION [dbo].[Exist_ID] (@id CHAR(15))
RETURNS bit
AS
BEGIN
DECLARE @exist_ID bit
if EXISTS(SELECT * FROM dbo.XXX_file WHERE id=@id)
SET @exist_ID=1
ELSE
SET @exist_ID=0
RETURN @exist_ID


然後利用Cmd.ExecuteScalar去執行"SELECT dbo.Exist_ID(@id)"
就可以拿掉一個Boolean值了...


"cc" 來函:
Post by cc
DB是可設定成Unique,不過這是AccountDB是給會員註冊用的
因此是希望用code的方式來達成,
像帳號重覆,會有個message告訴user「帳號已存在...」之類的做法
謝謝~
"cc" 來函:
Post by cc
Unique指的是Key欄位嗎!
Key欄位不是只能指定1組,假若我有多個欄位不容許重覆
MS-SQL可以做到嗎
"台" 來函:
Post by unknown
@@|||
你既然是用SQL Server就加Unique的Index來檢查就好啦
1.資料庫檢驗比較確實且快
2.不用額外寫程式...遇到重複資料要寫入時DB自動會幫你檔掉
3.加了這個Index查詢速度也會比較快
"cc" 來函:
Post by cc
在新增資料時如何判斷資料是否重複...
user_id(ini型態,每增加一筆會自動加1,也是Key欄位)
user_name(nvarchar型態) '不容許重覆
user_mail (nvarchar型態) '不容許重覆
Dim strSQL As String = " insert into sys_user (user_name...) values
Dim myConnection As SqlConnection = new
SqlConnection(ConfigurationManager.AppSettings("dsn"))
Dim myCommand As SqlCommand = new SqlCommand strSQL, myConnection)
50))
接下來要如何判斷...還是要改哪個部份?
謝謝^^
Loading...