SqlConnection cn = नया SqlConnection ("प्रयोक्ता आईडी = आईडी;" + "पासवर्ड = पासवर्ड; सर्वर = एसवीआर; "+" ट्रस्टेडकॉन्क्शन = नो; "+" डेटाबेस = डीबी; "+" कनेक्शन टाइमआउट = 30 "); cn.Open (); SqlCommand command1 = नया SqlCommand (); कमांड 1। कनेक्शन = सीएन; Console.WriteLine (ListofOrders.Count); के लिए (int i = 0; i & lt; लिस्ट ऑफ ऑर्डरर्स.काउंट; i ++) कमांड 1। कॉमांड टेक्स्ट + = स्ट्रिंग। फ़ॉर्मेट ("अपडेट टेबल सेट स्थिति = 'समयसीमा समाप्त हो गई है, जहां GUID = {0};", लिस्ट ऑफ ऑर्डर [आई] .ओस्ट्रिंग ( )); command1.ExecuteNonQuery (); // LogicHandler.UpdateActiveOrders (); कंसोल.प्रकाश रेखा ("पूर्ण", कंसोल कॉलर। Cyan);
इस चरण में त्रुटि प्राप्त हो रही है: command1.ExecuteNonQuery ();
त्रुटि संदेश: बहु-भाग पहचानकर्ता बाध्य नहीं किया जा सकता।
मैं यहाँ क्या कोशिश कर रहा हूँ मैं एक चुनिंदा क्वेरी चला रहा हूं और उस डेटा को Listof ऑर्डर
सूची में उस सूची में अद्यतन करना चाहता हूं।
कृपया
यदि आप एक समान तालिका
का उपयोग करते हैं इसे वर्ग कोष्ठक में लपेट करना है: [table]
। लेकिन पहले स्थान पर उनका उपयोग नहीं करना बेहतर होगा।
मुझे लगता है कि आपको Guid
को GUID = '{0}
। हाव्वर, आपको हमेशा स्ट्रिंग संयोजन के बजाय एसक्यूएल-पैरामीटर्स का उपयोग करना चाहिए यह एसक्यूएल इंजेक्शन भी रोकता है।
string update = @ "अद्यतन tablename - या [तालिका], लेकिन मैं चाहता हूँ कि सेट करें स्थिति = 'समय सीमा समाप्त' जहां GUID = @ GUID"; कमांड 1। कॉमांड टेक्स्ट = अपडेट; Command1.Parameters.Add ("@ GUID", SqlDbType.UniqueIdentifier)। Value = New Guid (ऑर्डरर्स [i] के ऑर्डर।। स्ट्रिंग ());
एक तरफ, आपने command1.CommandText + =
के बजाय सिर्फ command1.CommandText =
का उपयोग क्यों किया? यह कम से कम भ्रामक है, यदि आप कमांड का पुन: उपयोग करते हैं तो यह त्रुटियों का कारण भी हो सकता है।
No comments:
Post a Comment