Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

डालने के दौरान सी # में एसक्यूएल अद्वितीय बाधा उल्लंघन पकड़ने का सबसे अच्छा तरीका

आप जो खोज रहे हैं वह एक एसक्लएक्सप्शन है, विशेष रूप से प्राथमिक कुंजी बाधाओं का उल्लंघन। आप इस विशिष्ट त्रुटि को इस अपवाद से बाहर फेंके गए अपवाद की संख्या संपत्ति को देखकर प्राप्त कर सकते हैं। यह उत्तर संभवतः आपकी आवश्यकता के लिए प्रासंगिक है:SQL Server 2008 त्रुटि कोड से प्राथमिक कुंजी दोहराव की पहचान कैसे करें?

संक्षेप में, यह इस तरह दिखता है:

// put this block in your loop
try
{
   // do your insert
}
catch(SqlException ex)
{
   // the exception alone won't tell you why it failed...
   if(ex.Number == 2627) // <-- but this will
   {
      //Violation of primary key. Handle Exception
   }
}

संपादित करें:

यह थोड़ा हैकी हो सकता है, लेकिन आप अपवाद के संदेश घटक का निरीक्षण भी कर सकते हैं। कुछ इस तरह:

if (ex.Message.Contains("UniqueConstraint")) // do stuff


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में एक टेबल पर DML ट्रिगर का प्रकार लौटाएं

  2. SQL सर्वर 2016:एक डेटाबेस बनाएँ

  3. मैं JDBC का उपयोग करके SQL Server 2008 डेटाबेस से कैसे जुड़ूँ?

  4. आधार तालिका किसी भिन्न डेटाबेस में होने पर आधार तालिका नहीं दृश्य पर चयन करें

  5. SQL सर्वर में मल्टी-स्टेटमेंट टेबल-वैल्यूड फंक्शन्स और इनलाइन टेबल-वैल्यूड फंक्शन्स के बीच अंतर