form1.vb

来自「清华大学出版社出版的 移动应用开发宝典 张大威(2008)的附书源代码」· VB 代码 · 共 106 行

VB
106
字号
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports System.Data.SqlClient

Namespace MobileDevelopersHandbook

    Partial Public Class Form1
        Inherits System.Windows.Forms.Form

        Public Sub New()
            InitializeComponent()
        End Sub

        '' TODO: Change this to your own server name
        Private ReadOnly Hostname As String = "homelaptop"

        Private Sub buttonGetData_Click(ByVal sender As Object, ByVal e As EventArgs) Handles buttonGetData.Click

            '' Get the user credentials, if not already set
            If (NetworkCredentials.Instance.Username = Nothing) Then

                Using dlg As New NetworkCredentialsForm()

                    dlg.ShowDialog()

                End Using
            End If

            Dim rdrOvertimeRates As SqlDataReader = Nothing

            listBoxResults.Items.Clear()
            labelStatus.Text = "Connecting..."
            Me.Refresh()

            Dim connString As String = "Server=" + Hostname + ";Database=DotNetCF;Integrated Security=true;UID=" + NetworkCredentials.Instance.Username + ";Password=" + NetworkCredentials.Instance.UserPassword

            Using conSql As New SqlConnection(connString)

                Using sqlGetOvertimeRates As New SqlCommand("SELECT OvertimeRateID,Description FROM OvertimeRates ORDER BY Description ", conSql)

                    Try
                        ''open the connection
                        conSql.Open()

                        ''get the records using a reader
                        rdrOvertimeRates = sqlGetOvertimeRates.ExecuteReader()

                        ''put them into the list box
                        While (rdrOvertimeRates.Read())

                            listBoxResults.Items.Add(rdrOvertimeRates.GetString(1))

                        End While

                    Catch errSql As SqlException

                        DisplaySQLErrors(errSql)

                    Finally

                        ''always close the connection - we dont have many to play with
                        If Not rdrOvertimeRates Is Nothing Then
                            rdrOvertimeRates.Close()
                        End If

                        conSql.Close()
                    End Try
                End Using
            End Using

            labelStatus.Text = "Done"
        End Sub

        Private Sub DisplaySQLErrors(ByVal e As SqlException)

            Dim errorCollection As SqlErrorCollection = e.Errors

            Dim bld As StringBuilder = New StringBuilder()
            Dim inner As Exception = e.InnerException

            If Not inner Is Nothing Then

                MessageBox.Show("Inner Exception: " + inner.ToString())

            End If

            '' Enumerate the errors to a message box.
            For Each Err As System.Data.SqlClient.SqlError In errorCollection

                bld.Append(" Error No: " + Err.Number.ToString("X"))
                bld.Append(" Message : " + Err.Message)
                bld.Append(" Server  : " + Err.Server)
                bld.Append(" Source  : " + Err.Source)

                MessageBox.Show(bld.ToString())
                bld.Remove(0, bld.Length)
            Next
        End Sub

    End Class
End Namespace

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?