डालने के लिए SqlDataAdapter का उपयोग करना मैं SqlDataAdapter का उपयोग कर डेटाबेस में एक पंक्ति डालना चाहता हूं। मेरे पास ग्राहक ऑर्डर डेटाबेस में 2 टेबल (कस्टॉर्मर्स & ऑर्डर) हैं और इसमें हजार से अधिक रिकॉर्ड हैं। मैं डेटाबेस में अपने संबंधित टेबल पर नए ग्राहक & ऑर्डर जोड़ने के लिए एक जीयूआई (टेक्स्टबॉक्स) बनाना चाहता हूं।एक पंक्ति
- मुझे यह कैसे करना चाहिए?
मैं विधि कि आम तौर पर पीछा किया जाता है लगता है
dataAdapter = new SqlDataAdapter (sqlQuery, conn);
dataSet = new DataSet();
da.Fill(dataSet);
अब बक्सें से मान ले (या DataBinding का उपयोग करें) डाटासेट में एक नई पंक्ति जोड़ने के लिए और कॉल
da.Update(dataSet);
लेकिन प्रश्न यह है कि मैं सभी अन्य रिकॉर्ड्स को डेटा में क्यों लेना चाहिए? दाल (डेटासेट) का उपयोग पहली जगह में करना? मैं सिर्फ एक नया रिकॉर्ड जोड़ना चाहता हूं।
इस उद्देश्य के लिए मैं डेटासेट में डेटाबेस की स्कीमा बनाना चाहता हूं। इस तरह:
DataSet customerOrders = new DataSet("CustomerOrders");
DataTable customers = customerOrders.Tables.Add("Customers");
DataTable orders = customerOrders.Tables.Add("Orders");
customers.Columns.Add("CustomerID", Type.GetType("System.Int32"));
customers.Columns.Add("FirstName", Type.GetType("System.String"));
customers.Columns.Add("LastName", Type.GetType("System.String"));
customers.Columns.Add("Phone", Type.GetType("System.String"));
customers.Columns.Add("Email", Type.GetType("System.String"));
orders.Columns.Add("CustomerID", Type.GetType("System.Int32"));
orders.Columns.Add("OrderID", Type.GetType("System.Int32"));
orders.Columns.Add("OrderAmount", Type.GetType("System.Double"));
orders.Columns.Add("OrderDate", Type.GetType("System.DateTime"));
customerOrders.Relations.Add("Cust_Order_Rel", customerOrders.Tables["Customers"].Columns["CustomerID"], customerOrders.Tables["Orders"].Columns["CustomerID"]);
मैंने इन कॉलम को संबंधित टेक्स्ट बॉक्स में बाध्य करने के लिए डेटा बाइंडिंग का उपयोग किया। अब मैं उलझन में हूँ! मुझे आगे क्या करना चाहिये? सम्मिलित करें आदेश का उपयोग कैसे करें? क्योंकि मैंने कोई डेटा नहीं दिया है एडाप्टर। चयन करें, इसलिए डेटा एडाप्टर। अद्यतन() काम नहीं करेगा मुझे लगता है। कृपया एक सही दृष्टिकोण का सुझाव दें।
कि "जहां 0 = 1" एक lifesaver था। (मेमोरी में 2 जीबी की मीडिया टेबल लोड हो रहा है ... sigh ..) – pkExec
मुझे 'नया एसक्यूएल कॉमांडबिल्डर (डेटा एडाप्टर) लाइन में दिलचस्पी थी;' - इससे कुछ जादू हो जाता है इसलिए मुझे पूरे इंसर्ट को स्क्रिप्ट नहीं करना पड़ेगा बयान। धन्यवाद! –
डेटासेट। टेबल्स ["ग्राहक"]। जोड़ें (newRow); संकलित नहीं करता है। "System.Data.DataTable में 'एड' के लिए परिभाषा नहीं है"। क्या आपका मतलब डेटासेट है। टेबल [टेबल नाम]। पंक्तियां जोड़ें (नया पंक्ति) ;? –