Поиск…


Чтение поля из базы данных

Public Function GetUserFirstName(UserName As String) As String
    Dim Firstname As String = ""
    
    'Specify the SQL that you want to use including a Parameter
    Dim SQL As String = "select firstname from users where username=@UserName"
    
    'Provide a Data Source
    Dim DBDSN As String = "Data Source=server.address;Initial Catalog=DatabaseName;Persist Security Info=True;User ID=UserName;Password=UserPassword"

    Dim dbConn As New SqlConnection(DBDSN)

    Dim dbCommand As New SqlCommand(SQL, dbConn)

    'Provide one or more Parameters
    dbCommand.Parameters.AddWithValue("@UserName", UserName)

    'An optional Timeout
    dbCommand.CommandTimeout = 600

    Dim reader As SqlDataReader
    Dim previousConnectionState As ConnectionState = dbConn.State
    Try
        If dbConn.State = ConnectionState.Closed Then
            dbConn.Open()
        End If
        reader = dbCommand.ExecuteReader
        Using reader
            With reader
                If .HasRows Then
                    'Read the 1st Record
                    reader.Read()
                    'Read required field/s
                    Firstname = .Item("FirstName").ToString
                End If

            End With

        End Using

    Catch
        'Handle the error here
    Finally
        If previousConnectionState = ConnectionState.Closed Then
            dbConn.Close()
        End If
        dbConn.Dispose()
        dbCommand.Dispose()

    End Try
    'Pass the data back from the function
    Return Firstname

End Function

Использование вышеуказанной функции просто:

   Dim UserFirstName as string=GetUserFirstName(UserName)

Простая функция для чтения из базы данных и возврата в виде DataTable

Эта простая функция выполнит указанную команду Select SQL и вернет результат в виде набора данных.

Public Function ReadFromDatabase(ByVal DBConnectionString As String, ByVal SQL As String) As DataTable
    Dim dtReturn As New DataTable
    Try
        'Open the connection using the connection string
        Using conn As New SqlClient.SqlConnection(DBConnectionString)
            conn.Open()

            Using cmd As New SqlClient.SqlCommand()
                cmd.Connection = conn
                cmd.CommandText = SQL
                Dim da As New SqlClient.SqlDataAdapter(cmd)
                da.Fill(dtReturn)
            End Using
        End Using
    Catch ex As Exception
        'Handle the exception
    End Try


    'Return the result data set
    Return dtReturn
End Function

Теперь вы можете выполнить приведенную выше функцию из-под кодов

Private Sub MainFunction()
    Dim dtCustomers As New DataTable
    Dim dtEmployees As New DataTable
    Dim dtSuppliers As New DataTable


    dtCustomers = ReadFromDatabase("Server=MYDEVPC\SQLEXPRESS;Database=MyDatabase;User Id=sa;Password=pwd22;", "Select * from [Customers]")
    dtEmployees = ReadFromDatabase("Server=MYDEVPC\SQLEXPRESS;Database=MyDatabase;User Id=sa;Password=pwd22;", "Select * from [Employees]")
    dtSuppliers = ReadFromDatabase("Server=MYDEVPC\SQLEXPRESS;Database=MyDatabase;User Id=sa;Password=pwd22;", "Select * from [Suppliers]")

End Sub

В приведенном выше примере предполагается, что ваш экземпляр SQL Express «SQLEXPRESS» в настоящее время установлен на «MYDEVPC», а ваша база данных «MyDatabase» содержит таблицы «Клиенты», «Поставщики» и «Сотрудники», а пароль пользователя «sa» - «pwd22». Пожалуйста, измените эти значения в соответствии с настройками, чтобы получить желаемые результаты.

Получить скалярные данные

Эта простая функция может использоваться для получения значения только из одного результата запроса одного поля

Public Function getDataScalar(ssql As String)
    openConnection()

    Try
        Dim q As New MySqlCommand

        q.Connection = db
        q.CommandText = ssql
        getDataScalar = q.ExecuteScalar

    Catch ex As Exception
        'Exception
    End Try
End Function

Как это использовать:

Dim userid as String = getDataScalar("select username from user where userid=99")

Имя переменной «имя пользователя» будет заполнено значением имени пользователя поля в результате этого запроса.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow