sql server - How to declare a connection object on a class level connection not in local scope with VB.NET? -


मुझे त्रुटि मिली:

भरें: चयन कॉमांड। कनेक्शन संपत्ति को आरम्भ नहीं किया गया है।

मुझे लगता है कि यह इसलिए है क्योंकि मैं अपने डेटा को निजी उप के अंदर नहीं सेट कर रहा हूं, लेकिन सार्वजनिक वर्ग ..... लेकिन मुझे कार्यक्रम के दौरान अलग-अलग निजी उप में एक से अधिक बार में डेटा सेट का उपयोग करने की आवश्यकता है .... मुझे इसे कैसे परिभाषित करना चाहिए? बहुत धन्यवाद।

  आयात System.Data Imports System.Data.SqlClient लोक क्लास Form1 मंद चोर SqlConnection मंद strsql स्ट्रिंग मंद दा नई SqlDataAdapter (strsql, चोर) मंद डी एस नया डेटासेट के रूप में के रूप में के रूप में के रूप में ( ) मंद strcon स्ट्रिंग मंद newmode बूलियन मंद newrow DataRow मंद सीबी SqlCommandBuilder निजी उप Form1_Load (ByVal इस System.Object के रूप में, ByVal ई System.EventArgs के रूप में के रूप में के रूप में के रूप में के रूप में) MyBase.Load newmode = झूठी 'मंद चोर SqlConnection के रूप में' हैंडल मंद strsql स्ट्रिंग चोर = नई SqlConnection के रूप में ( "; डेटा स्रोत = नाजी; एकीकृत सुरक्षा = SSPI; प्रारंभिक सूची = परीक्षण") strsql = "table_1 से चयन *" con.Open () 'न्यू SqlDataAdapter (strsql, चोर) के रूप में डा मंद' मंद डी एस नया डेटासेट () da.Fill के रूप में (डी एस, "dd") TextBox1.DataBindings.Add (नया बाइंडिंग ( "पाठ", डी एस, "dd.tel")) TextBox2.DataBindings.Add (नया बाइंडिंग ( "पाठ ", Ds," dd.nam ")) पाठ बॉक्स 3.डेटाबिंडिंग.एड (नयी बाध्यकारी (" पाठ ", डी एस," डीडी। एडर ")) da.update (ds," dd ") con.Close () अंत उप निजी उप खाली () textrecord.text = "" TextBox1.text = "" TextBox2.text = "" TextB ox3.text = "" TextBox4.text = "" उप निजी उप Button1_Click (ByVal इस System.Object के रूप में, ByVal ई System.EventArgs के रूप में) के अंत संभालती Button1.Click newrow = ds.Tables ( "dd")। NewRow newmode = True textrecord.BackColor = Color.Red textrecord.Text = "नया रिकॉर्ड" संदेशबॉक्स ("नया रिकॉर्ड दर्ज करें और सहेजें") खाली कॉल करें () अंत उप अंत कक्षा    

आप इस लाइन में वैश्विक स्तर पर डेटाएडैप्टर बनाते हैं

  मंद दा के रूप में नई SqlDataAdapter (strsql, con) < / कोड>  

लेकिन इस बिंदु पर आपके strsql खाली है और यदि आप इसे बाद में बदलते हैं तो डेटाडेटटप्टर के अंदर ऐसा नहीं होता है, इस प्रकार त्रुटि संदेश।

यदि आप आग्रह करते हैं सभी ग्लोबल वार्स को रखने पर (और यह एक बुरा व्यवहार माना जाता है क्योंकि @ एंडोमर ने जवाब दिया है) तो आपको इसके उपयोग के ठीक पहले सही एसकल्स्ट्रिंग के साथ डाटाएडप्टर बनाना सुनिश्चित करना चाहिए:

  निजी उप फॉर्म 1_लोड (सिस्टम के रूप में उप प्रेषक। ऑब्जेक्ट, बाय वैल ई सिस्टम tArgs) हैंडल MyBase.Load newmode = झूठी चोर = नई SqlConnection (con.Open () दा) strsql = "table_1 से चयन *" = नई SqlDataAdapter ( "प्रारंभिक सूची = परीक्षण; डेटा स्रोत = नाजी; एकीकृत सुरक्षा = SSPI" Strsql, con) '& lt; - इस लाइन को यहां जोड़ा गया' da.Fill (ds, "dd") .... con.Close () अंत उप    

Comments