निम्नलिखित उदाहरण लें ...SqlCommand आज (कथन का उपयोग/निपटान मुद्दा)
Using cn As New SqlConnection(ConnectionString)
Try
Dim cmd As SqlCommand = New SqlCommand
With cmd
.Connection = cn
.Connection.Open()
.CommandText = "dbo.GetCustomerByID"
.CommandType = CommandType.StoredProcedure
.Parameters.Add("@CustomerID", SqlDbType.Int, 4)
.Parameters("@CustomerID").Value = CustomerID
End With
da = New SqlDataAdapter(cmd)
da.Fill(ds, "Customer")
Catch ex As Exception
End Try
End Using
अपना शोध से है प्रतीत होता है कि यह मूल रूप से ठीक है लेकिन SqlCommand का निपटारा नहीं किया जा रहा है।
प्रश्न -> निम्नलिखित में से कौन सा उदाहरण इस से निपटने का सबसे अच्छा तरीका है?
उदाहरण 2 - निपटान मैन्युअल
Using cn As New SqlConnection(ConnectionString)
Try
Dim cmd As SqlCommand = New SqlCommand
With cmd
.Connection = cn
.Connection.Open()
.CommandText = "dbo.GetCustomerByID"
.CommandType = CommandType.StoredProcedure
.Parameters.Add("@CustomerID", SqlDbType.Int, 4)
.Parameters("@CustomerID").Value = CustomerID
End With
da = New SqlDataAdapter(cmd)
cmd.Dispose()
da.Fill(ds, "Customer")
Catch ex As Exception
End Try
End Using
उदाहरण 3 - उदाहरण के लिए 3 के रूप में ही है, लेकिन ट्राई/कैच का उपयोग के भीतर है - का उपयोग करते हुए बयान
Using cn As New SqlConnection(ConnectionString)
Try
Using cmd As New SqlCommand
With cmd
.Connection = cn
.Connection.Open()
.CommandText = "dbo.GetCustomerByID"
.CommandType = CommandType.StoredProcedure
.Parameters.Add("@CustomerID", SqlDbType.Int, 4)
.Parameters("@CustomerID").Value = CustomerID
End With
da = New SqlDataAdapter(cmd)
da.Fill(ds, "Customer")
End Using
Catch ex As Exception
End Try
End Using
उदाहरण 4 के साथ स्वत: निपटान - क्या इससे कोई फर्क पड़ता है?
Using cn As New SqlConnection(ConnectionString)
Using cmd As New SqlCommand
Try
With cmd
.Connection = cn
.Connection.Open()
.CommandText = "dbo.GetCustomerByID"
.CommandType = CommandType.StoredProcedure
.Parameters.Add("@CustomerID", SqlDbType.Int, 4)
.Parameters("@CustomerID").Value = CustomerID
End With
da = New SqlDataAdapter(cmd)
da.Fill(ds, "Customer")
Catch ex As Exception
End Try
End Using
End Using
उदाहरण 5 - उदाहरण के 4 के रूप में ही है, लेकिन CommandText और cn का उपयोग करते हुए वक्तव्य में निर्दिष्ट कर रहे हैं - क्या लाभ यह है?
Using cn As New SqlConnection(ConnectionString)
Using cmd As New SqlCommand("GetCustomerByID", cn)
Try
With cmd
.Connection.Open()
.CommandType = CommandType.StoredProcedure
.Parameters.Add("@CustomerID", SqlDbType.Int, 4)
.Parameters("@CustomerID").Value = CustomerID
End With
da = New SqlDataAdapter(cmd)
da.Fill(ds, "Customer")
Catch ex As Exception
End Try
End Using
End Using
उदाहरण 6 - उदाहरण 5 जैसा ही है लेकिन कनेक्शन cmd के बजाय सीएन पर खोला गया है। क्या सीएमडी पर कनेक्शन खोलना बेहतर है अगर केवल एक संग्रहित प्रक्रिया को निष्पादित किया जाना है?
Using cn As New SqlConnection(ConnectionString)
cn.Open()
Using cmd As New SqlCommand("GetCustomerByID", cn)
Try
With cmd
.Connection = cn
.CommandType = CommandType.StoredProcedure
.Parameters.Add("@CustomerID", SqlDbType.Int, 4)
.Parameters("@CustomerID").Value = CustomerID
End With
da = New SqlDataAdapter(cmd)
da.Fill(ds, "Customer")
Catch ex As Exception
End Try
End Using
End Using
उपयोग कथन सुरक्षित है, लेकिन सभी स्थितियों में सभी अपवादों को अनदेखा करने वाला एक प्रयास/पकड़ निराश होता है। तो आप अपना प्रयास कैसे और कहाँ रखते हैं, इस पर निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं। आपका सवाल क्या हैं? –
यह प्रश्न मुझे codereview.stackexchange.com –
के लिए बेहतर अनुकूल होने के लिए प्रतीत होता है खाली प्रयास/पकड़ सिर्फ एक उदाहरण था, लेकिन इस मामले में यह केवल सुरक्षा के लिए था। प्रक्रिया में बाहरी यह है कि मैं जांचने जा रहा था कि डेटासेट में कोई सारणी है। अगर ऐसा नहीं होता तो मैं उचित तरीके से निपटूंगा। सवाल के बारे में, यह शीर्ष पर था - मैं पूछ रहा था कि स्क्लोकॉमैंड के निपटारे से निपटने का सबसे अच्छा तरीका क्या है। मैं व्यक्तिगत रूप से सोचता हूं कि उदाहरण 5 सही है लेकिन दूसरों से प्रतिक्रिया जानना चाहता था। –