At the top of your .vb file:
Imports System.data.sqlclient
In your code:
'Setup SQL Command Dim CMD as new sqlCommand("StoredProcedureName") CMD.parameters("@Parameter1", sqlDBType.Int).value = Param_1_value Dim connection As New SqlConnection(connectionString) CMD.Connection = connection CMD.CommandType = CommandType.StoredProcedure Dim adapter As New SqlDataAdapter(CMD) adapter.SelectCommand.CommandTimeout = 300 'Fill the dataset Dim DS as DataSet adapter.Fill(ds) connection.Close() 'Now, read through your data: For Each DR as DataRow in DS.Tables(0).rows Msgbox("The value in Column ""ColumnName1"": " & cstr(DR("ColumnName1"))) next
Now that the basics are out of the way,
I highly recommend abstracting the execution of SqlCommand Execution in a function.
Here is a common function that I use in one form or another in different projects:
''' <summary>Executes a SqlCommand on the Main DB Connection. Usage: Dim ds As DataSet = ExecuteCMD(CMD)</summary>''' ''' <param name="CMD">The command type will be determined based upon whether or not the commandText has a space in it. If it has a space, it is a Text command ("select ... from .."),''' ''' otherwise if there is just one token, it a stored procedure command</param>'''' Function ExecuteCMD(ByRef CMD As SqlCommand) As DataSet Dim connectionString As String = ConfigurationManager.ConnectionStrings("main").ConnectionString Dim ds As New DataSet() Try Dim connection As New SqlConnection(connectionString) CMD.Connection = connection 'Assume that it a stored procedure command type if there is no space in the command text. Example: "sp_Select_Customer" vs. "select * from Customers" If CMD.CommandText.Contains(" ") Then CMD.CommandType = CommandType.Text Else CMD.CommandType = CommandType.StoredProcedure End If Dim adapter As New SqlDataAdapter(CMD) adapter.SelectCommand.CommandTimeout = 300 'fill the dataset adapter.Fill(ds) connection.Close() Catch ex As Exception ' The connection failed. Display an error message. Throw New Exception("Database Error: " & ex.Message) End Try Return ds End Function
After that, your SQL Execution + execution code is very simple:
'----------------------------------------------------------------------' Dim CMD As New SqlCommand("GetProductName") CMD.Parameters.Add("@productID", SqlDbType.Int).Value = ProductID Dim DR As DataRow = ExecuteCMD(CMD).Tables(0).Rows(0) MsgBox("Product Name: " & cstr(DR(0))) '----------------------------------------------------------------------'
source share