各位大大我是新人想請教求助最近遇到惱人的問題我要判斷資料庫是否有重複的資料可是一值判斷不過!!以下圖片是我的代碼!小弟是初學者請大大幫幫忙感激不盡~~
using(SqlConnection conn = new SqlConnection("YOUR CONNECTION STRING") { using(SqlCommand cmd = new SQlCommand()) { cmd.Connection = conn; cmd.CommandText = "SELECT COUNT([DeptNo]) AS [cnt] FROM [Dept] WHERE [DeptNo=@deptno"; cmd.Parameters.AddWithValue("@deptno",txtNo.Text); if(conn.State==ConnectionState.Closed) { conn.Open(); } bool isExist = false; using(SqlDataReader reader = cmd.ExecuteReader()) { reader.Read(); isExist = reader.GetInt32(0)>0; } if(!isExist) { cmd.CommandText = "INSERT INTO [Dept] ([DeptNo]) VALUES(@deptno)"; int row_count = cmd.ExecuteNonQuery(); } else{....} } }
沒有唯一鍵的資料,才需要《先找後增》來確定是否重覆。既然有 DeptNo 欄位是唯一鍵了,那就設為 Unique Key,之後就不必先判斷,直接新增。有重覆的話,資料庫會告訴你。如此,在大多數不會重覆的情況下,只需一個 SQL。若先找後增,則不管重不重覆,都需要兩個 SQL,明顯沒效率。
讓 DB 做 DB 該做的,讓程式做程式該做的。