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

डेटा एडेप्टर का उपयोग करते हुए अद्यतन करते समय DBConcurrency अपवाद हुआ

ऐसा इसलिए है क्योंकि DataAdapter Optimistic Concurrency . का उपयोग करता है डिफ़ॉल्ट रूप से। इसका अर्थ यह है कि यदि आप किसी ऐसी पंक्ति को अद्यतन करने का प्रयास कर रहे हैं जो अब डेटाबेस में मौजूद नहीं है या परिवर्तित हो गई है, तो DataAdapter से अद्यतन उपरोक्त अपवाद के साथ विफल हो जाएगा।

संभावित परिदृश्य :

  • क्लाइंट में डेटा का चयन करने और अपडेट भेजने के बीच, कोई अन्य उपयोगकर्ता इस पंक्ति को अपने एप्लिकेशन से हटा रहा है या अपडेट कर रहा है।
  • हो सकता है कि आप अपने आवेदन में कहीं और से डेटा हटा रहे हों।

उदाहरण के लिए :

  1. आप DataTable भरते हैं जिसका उपयोग अपडेट के लिए किया जाएगा।
  2. पंक्ति को Code = 1101 के साथ हटाता है (उदाहरण के लिए) सीधे डेटाबेस से, यानी आप DataTable . का उपयोग नहीं करते हैं यहाँ। यह एक अन्य उपयोगकर्ता का अनुकरण कर रहा है जो Code = 1101 . के साथ पंक्ति को हटा रहा है दूसरे आवेदन से। या आपके कोड का कोई अन्य भाग Code = 1101 . के साथ पंक्ति को हटा रहा है ।
  3. पंक्ति को Code = 1101 के साथ चुनता है DataTable . से , यह केवल यह दिखाने के लिए है कि यह अभी भी वहीं है, भले ही आपने इसे डेटाबेस से ही हटा दिया हो।
  4. Quantity का संपादन करता है Code = 1101 . के साथ पंक्ति में कॉलम DataTable . में . यह करना होगा, अन्यथा अपडेट करने के लिए कॉल अपडेट करते समय इस पंक्ति को अनदेखा कर देगा।
  5. अपडेट निष्पादित करता है, यह अपवाद को फेंक देगा क्योंकि आप उस पंक्ति को अपडेट करने का प्रयास कर रहे हैं जो (अब नहीं) डेटाबेस में मौजूद है।

यदि आप Last Writer Wins लागू करना चाहते हैं , निम्नलिखित कोड जोड़ें:

cb.ConflictOption = ConflictOption.OverwriteChanges;

इसके अलावा एक और संभावित बात है:यदि आपके पास Decimal है /numeric डीबी में कॉलम के रूप में वे इस त्रुटि का कारण बन सकते हैं, भले ही डेटा समान दिखता हो। यह एक दशमलव पूर्णांकन त्रुटि के कारण है।

एक महत्वपूर्ण नोट :आपको हमेशा parameterized queries का उपयोग करना चाहिए वैसे। इस प्रकार के स्ट्रिंग संयोजन SQL Injection के लिए खुले हैं ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres पंक्ति आकार की समझ बनाना

  2. कैसे निकालें () PostgreSQL में काम करता है

  3. मैं अपने हरोकू पोस्टग्रेज डेटाबेस में एक .sql फ़ाइल कैसे आयात कर सकता हूं?

  4. उत्पादन PostgreSQL डेटाबेस को प्रबंधित करना आसान बनाना

  5. अजवाइन कार्यकर्ता डेटाबेस कनेक्शन पूलिंग