2012年5月29日 星期二

Sql Insert使用ExecuteScalar 方法 避免資料重複


做會員總數或註冊流水號的查詢
在ADO.NET中可以使用ExecuteScalar函數
來查出資料庫中剛註冊會員的流水號(假設名稱是IdNumber),將他設置成主鍵
並且自動增號
在我插入新增資料後接著ExecuteNonQuery再做ExecuteScalar
資料發生重複(插入)輸入的情況。當然重複的資料鍵值不同ExecuteScalar所找到的是第二次重複資料的流水號。目前還沒找到為甚麼會複製的資料。可能是自動增號的關係?
解決方法
1)
ExecuteNonQuery
select @@identity
ExecuteScalar
2)
Insert into tablename output inserted.IdNumber ....
ExecuteScalar


以上非完整code
就不會有重複資料了


參考閱讀(簡體)
http://www.bitscn.com/pdb/dotnet/200807/145550.html
http://www.w17x.com/AritcleDisplay.aspx?id=519

沒有留言: