PDA

View Full Version : تست ExecuteNonQuery قبل از اجرا



mojtabadj
سه شنبه 17 فروردین 1389, 11:33 صبح
سلام دوستان عزیز

آیا راهی وجو داره که قبل از اینکه ExecuteNonQuery اجرا بشه بتونم بفهمم که ارور میده یا نه؟

با تشکر از دوستان

pourang_us
سه شنبه 17 فروردین 1389, 12:37 عصر
دوست عزیز
میتونی خود دستورات رو داخل SQL دستورات رو اجرا کنی
ضمنا تو حتما از Try استفاده کن


موفق باشی

mojtabadj
سه شنبه 17 فروردین 1389, 13:43 عصر
دوست عزیز
میتونی خود دستورات رو داخل SQL دستورات رو اجرا کنی
ضمنا تو حتما از Try استفاده کن


موفق باشی

من فقط میخوام تستش کنم که ارور میده یا نه؟

3 یا 4 تا query رو میخوام تست کنم بعدا همشون رو با هم بفرستم و ذخیره کنم

استفاده از trancaction هم واسم فایدهای نداره اخه من از شی گرایی دارم استفاده میکنم

و هر query داخل کلاس خودش داره اجرا میشه!

pourang_us
سه شنبه 17 فروردین 1389, 15:55 عصر
دوست عزیز


شاید اگر من جای شما بودم دستوراتم رو به صورت جداگانه مینوشتم و در زمان ذخیره یا هر عملیاتی اونها رو صدا میکردم یا اینطوری استفاده از تراکنش نیز راحت بود الان هم میتونی از Trans استفاده کنی کلاسهات رو تک تک صدا کن و در نهایت Commit کن

موفق باشی

mojtabadj
سه شنبه 17 فروردین 1389, 16:35 عصر
دوست عزیز


شاید اگر من جای شما بودم دستوراتم رو به صورت جداگانه مینوشتم و در زمان ذخیره یا هر عملیاتی اونها رو صدا میکردم یا اینطوری استفاده از تراکنش نیز راحت بود الان هم میتونی از Trans استفاده کنی کلاسهات رو تک تک صدا کن و در نهایت Commit کن

موفق باشی

خیلی ممنون از شما ولی یه مسئله دیگر هم هست من از معماری 3 لایه استفاده کردم و کل

ExecuteNonQuery من داخل یک کلاس است و برای اجرای کدها در کلاسهای دیگر یک نمونه

از کلاس اتصال به پایگاه داده درست میکنم و آنها را اجرا میکنم

میشه در مورد Trans بیشتر توضیح بدین. آیا نمونه کدی دارین؟

کلاس اتصال به پایگاه دادم رو اینجا میزارم:(اسم کلاسم DBCls هستش)




#Region "Imports"
Option Explicit On
Imports System.Data
Imports System.Data.SqlClient
#End Region
Public Class DBCls
Private ObjCon As SqlConnection
Public Sub New()
ObjCon = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & Application.StartupPath & "\bank\ebnesina1.mdf;Integrated Security=True;User Instance=True")
End Sub
Private Sub Connect()
Try
If ObjCon.State = ConnectionState.Closed Then
ObjCon.Open()
End If
Catch ex As Exception
Throw New Exception("اتصال به پایگاه داده برقرار نشد")
End Try
End Sub
Private Sub DisConnect()
Try
ObjCon.Close()
Catch ex As Exception
Throw New Exception("اتصال بسته نشد")
End Try
End Sub
Public Sub ExecuteSQL(ByVal strSQL As String)
Try
Connect() 'فراخوانی متد Connect
Dim ObjAdaptor As New SqlDataAdapter("", ObjCon)
ObjAdaptor.SelectCommand = New SqlCommand
ObjAdaptor.SelectCommand.Connection = ObjCon
ObjAdaptor.SelectCommand.CommandText = strSQL
ObjAdaptor.SelectCommand.ExecuteNonQuery()
DisConnect()
Catch ex As Exception
DisConnect() 'بستن کانکشن
Throw New Exception(ex.ToString)
End Try
End Sub
Public Sub ExecuteSQL(ByVal strSQL1 As String, ByVal strSQL2 As String)
Dim ObjTrancAction As SqlTransaction
Try
Connect() 'فراخوانی متد Connect
Dim ObjAdaptor As New SqlDataAdapter("", ObjCon)
ObjAdaptor.SelectCommand = New SqlCommand
ObjAdaptor.SelectCommand.Connection = ObjCon
ObjTrancAction = ObjCon.BeginTransaction
ObjAdaptor.SelectCommand.Transaction = ObjTrancAction

ObjAdaptor.SelectCommand.CommandText = strSQL1
ObjAdaptor.SelectCommand.ExecuteNonQuery()

ObjAdaptor.SelectCommand.CommandText = strSQL2
ObjAdaptor.SelectCommand.ExecuteNonQuery()

ObjTrancAction.Commit()
DisConnect()
Catch ex As Exception
ObjTrancAction.Rollback()
DisConnect() 'بستن کانکشن
Throw New Exception(ex.ToString)
End Try
End Sub
Public Function ExecuteSelectSQL(ByVal strSQL As String) As DataTable
Dim DTable As New DataTable
Try
Dim ObjAdaptor As New SqlDataAdapter("", ObjCon)
Connect() 'فراخوانی متد Connect
ObjAdaptor.SelectCommand.CommandText = strSQL
ObjAdaptor.SelectCommand.ExecuteNonQuery()
ObjAdaptor.Fill(DTable)
DisConnect()
Return DTable
Catch ex As Exception
DisConnect() 'بستن کانکشن
Throw New Exception("اطلاعات بازیابی نشد")
End Try
End Function
'================================================= =====
Public Sub ExecuteSQL(ByVal strSQL1 As String, ByVal strSQL2 As String, ByVal strSQL3 As String)
Dim ObjTrancAction As SqlTransaction
Try
Connect() 'فراخوانی متد Connect
Dim ObjAdaptor As New SqlDataAdapter("", ObjCon)
ObjAdaptor.SelectCommand = New SqlCommand
ObjAdaptor.SelectCommand.Connection = ObjCon
ObjTrancAction = ObjCon.BeginTransaction
ObjAdaptor.SelectCommand.Transaction = ObjTrancAction

ObjAdaptor.SelectCommand.CommandText = strSQL1
ObjAdaptor.SelectCommand.ExecuteNonQuery()

ObjAdaptor.SelectCommand.CommandText = strSQL2
ObjAdaptor.SelectCommand.ExecuteNonQuery()

ObjAdaptor.SelectCommand.CommandText = strSQL3
ObjAdaptor.SelectCommand.ExecuteNonQuery()

ObjTrancAction.Commit()
DisConnect()
Catch ex As Exception
ObjTrancAction.Rollback()
DisConnect() 'بستن کانکشن
Throw New Exception(ex.ToString)
End Try
End Sub
'==================================modifying====== ==============
Public Function ExecuteSQLForReader(ByVal strSQL As String) As SqlDataReader
Try
Dim myreader As SqlDataReader
DisConnect()
Connect() 'فراخوانی متد Connect
Dim ObjAdaptor As New SqlDataAdapter("", ObjCon)
ObjAdaptor.SelectCommand = New SqlCommand
ObjAdaptor.SelectCommand.Connection = ObjCon
ObjAdaptor.SelectCommand.CommandText = strSQL
' ObjAdaptor.SelectCommand.ExecuteNonQuery()
myreader = ObjAdaptor.SelectCommand.ExecuteReader()

'DisConnect()
Return myreader

Catch ex As Exception
DisConnect() 'بستن کانکشن
Throw New Exception(ex.ToString)
End Try
End Function
End Class

mojtabadj
چهارشنبه 18 فروردین 1389, 21:04 عصر
کسی نیست جواب بده؟:ناراحت: