VB 2010 (49)ADO.NET的常见任务

数据访问示例都需要使用pubs数据据库.添加数据源,找到pubs.mdf,并加入本地项目。
 

1.选择数据

 Private Sub MySearch()
        Dim data As List(Of String)
        data = GetAuthorsLastNames
        For Each author As String In data
            Console.WriteLine(author)
        Next

        Console.WriteLine("Press Enter to exit")
        Console.Read()
    End Sub
    Public Function GetAuthorsLastNames()
        Dim conn As SqlConnection
        Dim cmd As SqlCommand
        Dim result As New List(Of String)
        Dim cmdString As String = "Select au_lname from authors"
        '获取数据库所在的文件夹
        Dim strPUBSMDF As String = Mid(My.Application.Info.DirectoryPath, 1, My.Application.Info.DirectoryPath.Length - 9)

        conn = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & strPUBSMDF & "pubs.mdf" & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
        cmd = New SqlCommand(cmdString, conn)

        conn.Open()
        Dim myReader As SqlDataReader
        myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
        While myReader.Read
            result.Add(myReader("au_lname").ToString)
        End While
        Return result
    End Function

2.插入数据

Private Sub MyTestInsert()
        InsertData()
        Console.WriteLine("Press Enter to exit")
        Console.Read()
    End Sub

    Private Sub InsertData()
        Dim conn As SqlConnection
        Dim cmd As SqlCommand
        Dim cmdString As String = "Insert  authors(au_id,au_fname,au_lname,phone,contract) Values ('555-12-1212','Foo','deBar','212-555-1212',1)"
        conn = New SqlConnection()
        '获取数据库所在的文件夹()
        Dim strPUBSMDF As String = Mid(My.Application.Info.DirectoryPath, 1, My.Application.Info.DirectoryPath.Length - 9)
        conn = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & strPUBSMDF & "pubs.mdf" & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
        cmd = New SqlCommand(cmdString, conn)
        conn.Open()
        cmd.ExecuteNonQuery()

        cmdString = "Select au_fname,au_lname,phone From authors Where au_lname='deBar'"
        cmd = New SqlCommand(cmdString, conn)
        Using reader As SqlDataReader = cmd.ExecuteReader
            While reader.Read
                Console.WriteLine("{0}{1}:{2}", reader.GetString(0), reader.GetString(1), reader.GetString(2))
            End While
        End Using
        conn.Close()
    End Sub

3.更新数据

 Private Sub MyTestUpdate()
        Dim records As Integer
        records = UpdateRoyaltySchedule(10, 8)
        Console.WriteLine("{0} records affected", records)
        Console.WriteLine("Press ENTER to exit.")

        Console.Read()
    End Sub
    Private Function UpdateRoyaltySchedule(ByVal currentPercent As Integer, ByVal newPercent As Integer) As Integer
        Dim cmd As SqlCommand
        Dim result As Integer
        Dim cmdString As String = _
            String.Format("Update roysched Set royalty={0} where royalty={1}", newPercent, currentPercent)
        '获取数据库所在的文件夹()
        Dim strPUBSMDF As String = Mid(My.Application.Info.DirectoryPath, 1, My.Application.Info.DirectoryPath.Length - 9)
        Using conn = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & strPUBSMDF & "pubs.mdf" & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
            conn.Open()
            DisplayData(conn, "befor")
            cmd = New SqlCommand(cmdString, conn)
            result = cmd.ExecuteNonQuery
            displayData(conn, "after")
        End Using

        Return result
    End Function
    Private Sub DisplayData(ByVal conn As SqlConnection, ByVal direction As String)
        Dim cmdString As String = "Select * From roysched Order By title_id"
        Dim cmd As New SqlCommand(cmdString, conn)
        Console.WriteLine("Displaying data ({0})", direction)
        Using reader As SqlDataReader = cmd.ExecuteReader
            While reader.Read
                Console.WriteLine _
                    ("Title:{0} {1}-{2} Royalty:{3}%", _
                     reader.GetString(0), reader.GetInt32(1), reader.GetInt32(2), reader.GetInt32(3))
            End While
        End Using
    End Sub

4.删除数据

Private Sub MyTestDelete()
        Dim deletes As Integer
        Console.WriteLine("{0} author(s) deleted", deletes)

        Console.WriteLine("Press ENTER to exit.")
        Console.Read()
    End Sub
    Public Function DeleteAuthor(ByVal lastName As String) As Integer
        Dim result As Integer
        Dim cmd As SqlCommand
        Dim cmdString As String = String.Format("Delete authors Where au_lname='{0}'", lastName)

         '获取数据库所在的文件夹()
        Dim strPUBSMDF As String = Mid(My.Application.Info.DirectoryPath, 1, My.Application.Info.DirectoryPath.Length - 9)
        Using conn = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" & strPUBSMDF & "pubs.mdf" & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
            cmd = New SqlCommand(cmdString, conn)
            conn.Open()
            DisplayDataD(conn, "before")
            result = cmd.ExecuteNonQuery
            DisplayDataD(conn, "after")
        End Using

        Return result
    End Function

    Private Sub DisplayDataD(ByVal conn As SqlConnection, ByVal direction As String)
        Dim cmdstring As String = "Select count(*) From authors"
        Dim cmd As New SqlCommand(cmdstring, conn)
        Dim count As Integer = CType(cmd.ExecuteScalar, Integer)
        Console.WriteLine("Number of authors {0}:{1}", direction, count)
    End Sub

发布了146 篇原创文章 · 获赞 0 · 访问量 2740

猜你喜欢

转载自blog.csdn.net/ngbshzhn/article/details/105587334