Tôi mới làm quen với các câu lệnh chuẩn bị trong vb.net và Microsoft SQL Server 2008. Tôi không thể tìm thấy bất kỳ nguồn nào tốt để kết nối với cơ sở dữ liệu qua chuỗi kết nối và thực hiện các câu lệnh đã chuẩn bị. Ai đó có thể chỉ cho tôi một ví dụ hoặc chỉ cho tôi một tài nguyên có thể hữu ích không?Báo cáo đã chuẩn bị trong VB.NET
5
A
Trả lời
4
Báo cáo chuẩn bị không là gì ngoài Parametrized SqlCommands được đính kèm trong Giao dịch.
Ví dụ, đây là một tuyên bố chuẩn bị:
Using c As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
c.Open()
using mytransaction = c.BeginTransaction()
Dim command = New SqlCommand("INSERT INTO yourtable(image) values (@image)", c)
''# this is specific to the FileUploadControl but the idea is to get the
''#image in a byte array; however you do it, it doesn't matter
Dim buffer(FileUpload1.PostedFile.ContentLength) As Byte
FileUpload1.PostedFile.InputStream.Read(buffer, 0, buffer.Length)
command.Parameters.AddWithValue("@image", buffer)
command.ExecuteNonQuery()
mytransaction .Commit()
End Using
End Using
6
Dưới đây là một số mã ví dụ nhanh:
Using cn As New SqlConnection("your connection string here"), _
cmd AS New SqlCommand("SELECT * FROM Table WHERE ID= @ID", cn)
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = 12345
cn.Open()
Using rdr As SqlDataREader = cmd.ExecuteReader()
While rdr.Read()
'Do something with the record
End While
rdr.Close()
End Using
End Using
Tất nhiên bạn cần phải nhập System.Data và System.Data.SqlClient.
0
Dim datOleReader As SqlDataReader
' Public con As New SqlConnection
Public Function CHECK_CONNECTION(ByVal CON As SqlConnection) As SqlConnection
Try
If CON.State = ConnectionState.Broken Or CON.State = ConnectionState.Closed Then
CON.Open()
End If
Catch ex As Exception
CON.Close()
CON.Open()
End Try
Return CON
End Function
Public Function gGetMaxCode(ByVal strTable As String, ByVal strCode As String) As Long
Dim cmdtext As New SqlCommand
Try
' con = clsexe.CHECK_CONNECTION(con) #
' cmdtext.Connection = con #
cmdtext.Connection = CHECK_CONNECTION(con) ' #
cmdtext.CommandText = "SELECT ISNULL(MAX(" & strCode & "),0)+1 FROM " & strTable
datOleReader = cmdtext.ExecuteReader(CommandBehavior.SingleRow)
datOleReader.Read()
If datOleReader.IsDBNull(0) Then
Return 1
Else
Return datOleReader.Item(0)
End If
Catch ex As Exception
MsgBox(ex.Message.ToString)
Finally
datOleReader.Close()
End Try
End Function
Public Function gGetMaxCode(ByVal strTable As String, ByVal strCode As String, ByVal trans As SqlTransaction) As Long
Dim cmdtext As New SqlCommand
Try
' con = clsexe.CHECK_CONNECTION(con) #
' cmdtext.Connection = con #
cmdtext.Connection = CHECK_CONNECTION(con) ' #
cmdtext.CommandText = "SELECT ISNULL(MAX(" & strCode & "),0)+1 FROM " & strTable
cmdtext.Transaction = trans
datOleReader = cmdtext.ExecuteReader(CommandBehavior.SingleRow)
datOleReader.Read()
If datOleReader.IsDBNull(0) Then
Return 1
Else
Return datOleReader.Item(0)
End If
Catch ex As Exception
Throw ex
Finally
datOleReader.Close()
End Try
End Function
Public Function ExecuteQry(ByVal qry As String) As Boolean
Dim cmdtext As New SqlCommand
Try
'con = cls.cnn #
'cmdtext.Connection = con #
cmdtext.Connection = CHECK_CONNECTION(con) ' #
cmdtext.CommandText = qry
cmdtext.CommandType = CommandType.Text
cmdtext.ExecuteNonQuery()
cmdtext.Dispose()
cmdtext = Nothing
ErrCode = True
Catch ex As Exception
'gErrMsg()
ErrCode = False
MsgBox(ex.Message.ToString)
Finally
'con.Close()
End Try
End Function
Public Function ExecuteQry(ByVal qry As String, ByVal trans As SqlTransaction) As Boolean
Dim cmdtext As New SqlCommand
Try
'con = cls.cnn #
'cmdtext.Connection = con #
cmdtext.Connection = CHECK_CONNECTION(con) ' #
cmdtext.CommandText = qry
cmdtext.CommandType = CommandType.Text
cmdtext.Transaction = trans
cmdtext.ExecuteNonQuery()
cmdtext.Dispose()
cmdtext = Nothing
Catch ex As Exception
Throw ex
'gErrMsg()
MsgBox(ex.Message.ToString)
Finally
'con.Close()
End Try
End Function
Public Function ExecuteSelect(ByVal qry As String, ByVal trans As SqlTransaction) As SqlDataReader
Dim cmdtext As New SqlCommand
Try
'con = cls.cnn #
'cmdtext.Connection = con #
cmdtext.Connection = CHECK_CONNECTION(con) ' #
cmdtext.CommandText = qry
cmdtext.CommandType = CommandType.Text
cmdtext.Transaction = trans
ExecuteSelect = cmdtext.ExecuteReader()
Return ExecuteSelect
cmdtext.Dispose()
cmdtext = Nothing
Catch ex As Exception
Throw ex
'MsgBox(ex.Message.ToString)
Finally
'clsexe.ExecuteSelect.Close()
'con.Close()
End Try
End Function
Public Function Executescalar(ByVal qry As String, ByVal trans As SqlTransaction)
Dim cmdtext As New SqlCommand
Try
'con = cls.cnn #
'cmdtext.Connection = con #
cmdtext.Connection = CHECK_CONNECTION(con) ' #
cmdtext.CommandText = qry
cmdtext.CommandType = CommandType.Text
cmdtext.Transaction = trans
Executescalar = cmdtext.ExecuteScalar
cmdtext.Dispose()
cmdtext = Nothing
Catch ex As Exception
Throw ex
' MsgBox(ex.Message.ToString)
Finally
' con.Close()
End Try
End Function
Public Function ExecuteAdapter(ByVal qry As String, ByVal trans As SqlTransaction) As SqlDataAdapter
Dim cmdtext As New SqlCommand
Dim da As New SqlDataAdapter
Try
'con = cls.cnn #
'cmdtext.Connection = con
cmdtext.Connection = CHECK_CONNECTION(con) ' #
cmdtext.CommandTimeout = 0
cmdtext.CommandText = qry
cmdtext.Transaction = trans
cmdtext.CommandType = CommandType.Text
da.SelectCommand = cmdtext
Return da
cmdtext.Dispose()
cmdtext = Nothing
Catch ex As Exception
Throw ex
'MsgBox(ex.Message.ToString)
Finally
' con.Close()
End Try
End Function
Public Function Executedataset(ByVal qry As String) As DataSet
Dim cmdtext As New SqlCommand
Dim ds As New DataSet
Dim da As New SqlDataAdapter
Try
'con = cls.cnn #
'cmdtext.Connection = con #
cmdtext.Connection = CHECK_CONNECTION(con) ' #
cmdtext.CommandText = qry
cmdtext.CommandType = CommandType.Text
da.SelectCommand = cmdtext
da.Fill(ds)
cmdtext.Dispose()
cmdtext = Nothing
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Function
Public Function ExecuteProcedure(ByVal qry As String) As Boolean
Dim cmdtext As New SqlCommand
Try
'con = cls.cnn #
'cmdtext.Connection = con #
cmdtext.Connection = CHECK_CONNECTION(con) ' #
cmdtext.CommandText = qry
cmdtext.CommandType = CommandType.StoredProcedure
cmdtext.ExecuteNonQuery()
cmdtext.Dispose()
cmdtext = Nothing
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Function
+3
Bạn có thể thêm một số chi tiết ở đây không? Trong khi tôi có thể đánh giá cao ví dụ, một lời giải thích của một số phần sẽ được tốt đẹp. –
Các vấn đề liên quan
- 1. Đóng báo cáo đã chuẩn bị
- 2. Đệ quy trong các báo cáo đã chuẩn bị
- 3. Đặt timeouts trên báo cáo đã chuẩn bị
- 4. Báo cáo lỗi báo cáo chuẩn bị MySQLi
- 5. mysql báo cáo chuẩn bị vĩnh viễn
- 6. Báo cáo chuẩn bị - Số hàng
- 7. Báo cáo chuẩn bị PDO PHP
- 8. Báo cáo MySQLi/Chuẩn bị & SQL_CALC_FOUND_ROWS
- 9. Báo cáo được chuẩn bị MySQLi?
- 10. MS Access chuẩn bị báo cáo
- 11. PHP ::: chuẩn bị Báo cáo ::: freeresult() ::: close()
- 12. báo cáo được chuẩn bị trong đường ray/activerecord
- 13. PDO với INSERT INTO thông qua báo cáo chuẩn bị
- 14. Báo cáo chuẩn bị phía khách hàng là gì?
- 15. SQLite/C# Kết nối Pooling và chuẩn bị báo cáo Confusion
- 16. Làm thế nào để sử dụng MySQL chuẩn bị báo cáo bộ nhớ đệm?
- 17. PHP: Báo cáo chuẩn bị (newbie), chỉ cần xác nhận điều này về SQL injection
- 18. Báo cáo được chuẩn bị động có tệ không? (với php + mysqli)
- 19. Báo cáo chuẩn bị có làm chậm chương trình một cách dễ thấy không?
- 20. Báo cáo chuẩn bị sẵn sàng ngăn chặn các cuộc tấn công tiêm sql?
- 21. Nguồn tham chiếu cho báo cáo XUnit chuẩn là gì
- 22. Khi * không * sử dụng câu lệnh đã chuẩn bị?
- 23. Làm thế nào để programatically xuất báo cáo tinh thể dưới dạng PDF trong VB.NET
- 24. Báo cáo trong Codeigniter
- 25. có liên kết bị hỏng báo cáo nhân sư
- 26. Chèn vào các loại SQL tùy chỉnh với các câu lệnh đã chuẩn bị trong java
- 27. Sử dụng ký tự đại diện trong câu lệnh đã chuẩn bị - MySQLi
- 28. Báo cáo Crystal "Tải báo cáo không thành công" lỗi chạy báo cáo trên máy chủ
- 29. Để sử dụng các câu lệnh đã được chuẩn bị bởi PHP cho Postgres
- 30. Tiêm SQL bằng câu lệnh đã chuẩn bị?
Xin lỗi nhưng ... Tôi tin rằng bạn đang sai? Họ không yêu cầu một giao dịch và có lợi ích về việc cho phép máy chủ sử dụng lại kế hoạch thực hiện. http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.prepare(v=vs.110).aspx – Basic
@ Cơ bản những gì bạn mô tả là các thủ tục được lưu trữ. Trong khi tất cả các thủ tục lưu sẵn là các câu lệnh chuẩn bị, không phải tất cả các câu lệnh đã chuẩn bị đều được lưu trữ. –
@ DavidSöderlund Tôi biết cả hai (trên thực tế, các tài liệu tôi liên kết để thảo luận cả hai). Điểm mà tôi đang cố gắng thực hiện là câu trả lời của Icarus dường như không chính xác, ví dụ tôi có thể biên dịch một câu lệnh chuẩn bị, cho phép máy chủ xây dựng kế hoạch thực hiện và sau đó sử dụng lại nó nhiều lần. Câu trả lời này bỏ qua mô hình đó hoàn toàn. – Basic