2010-06-02 50 views
0

HI.I搜索這個問題,告知我發現的解決方案來改變列屬性獨特Index.Now如果我嘗試插入相同的記錄cmd.ExecuteNonQuery()給出錯誤記錄存在,但如何使用這個例外給用戶一條消息,記錄存在並且必須輸入新消息?我試圖做一些像C#:在數據庫檢查現有記錄的Mysql

if(cmd.ExecuteNonQuery() !=true) 
{ 
MessageBox.Show("User Exists"); 
} 

但我不知道是什麼返回cmd.ExecuteNonQuery()

或者我必須使用閱讀器記錄表,並將它們與Textfiel文本比較?

回答

1

你可以把一個try catch塊圍繞你的代碼塊,然後看看異常類型,然後,而不是在catch中使用異常,你可以使用你正在試圖趕上了明確的例外。

try 
{ 
    cmd.ExecuteNonQuery(); 
} 
catch(Exception ex) 
{ 
    ex.Type.ToString(); //this will give you the type of exception. 
} 

現在,一旦你知道的例外是你能趕上只有一個,並告知用戶像下面這樣。

try 
{ 
    cmd.ExecuteNonQuery(); 
} 
catch(RecordExhistsException ex) 
{ 
    MessageBox.Show("Duplicate Record"); 
} 

Enjoy!

+0

THKS。快速回復)) – Ercan 2010-06-02 21:41:05

1
   cmd.CommandText = "Select * from Emp"; 
       cmd.CommandType = CommandType.Text; 
       cmd.Connection = con; 
       DartaReader dr; 
       dr = cmd.ExecuteReader(); 
       while (dr.Read()) 
       {//textbox contain the id or name which you want to check in table 
        if (dr[0].ToString() == textBox1.Text) 
        { 
         MessageBox.Show("Record is Already Exist"); 
         con.Close(); 
         break; 
        } 
       } 

通過使用上述代碼我發現數據庫表中存在記錄。