進階應用
[首頁] [教學] [安裝] [開發] [物件] [命名空間] [控制項] [函式] [資料庫] [檔案] [XML] [Office] [網站] [AJAX] [CSS] [問題] [技巧] [樣本] [參考] [示範程式] [待編] [網頁總覽]

首頁
向上

進階應用

  • 計算 RecordCount
    SqlDataSource 或 AccessDataSource查詢取得的記錄筆數無法由物件的屬性直接得到,可設置一隱藏的 ListBox,令其 DataSource 為SqlDataSource 或 AccessDataSource,藉由其屬性.Items.Count得到RecordCount

    下例之程式碼可供參考:

    ListBox1.DataBind()
    lblCount.Text = ListBox1.Items.Count

    此外,運用SQL Command在執行上有較佳之效率,下例之函數程式碼可供參考:

     Public Function DB_RecordCount(ByVal TableName As String) As Integer
        ' Ex: DB_RecordCount("NTT_Login_key_teacher")
        Dim Conn As New Data.SqlClient.SqlConnection(MySubs.MySetting("MySQL"))
        Dim qStr As String = "select COUNT(*) AS iCount from " & TableName
        Dim Cmd As New Data.SqlClient.SqlCommand(qStr, Conn)
        Dim Drd As Data.SqlClient.SqlDataReader
        Dim iReturn As Integer
        Conn.Open()
        Drd = Cmd.ExecuteReader
        If Drd.Read Then
            iReturn = Drd(0)
        Else
            iReturn = 0
        End If
        Drd.Close()
        Conn.Close()
        Return iReturn
    End Function

    註:GridView 若設定分頁時,其屬性.Rows.Count 乃單頁顯示的筆數,若要取得全部 DataSource 的筆數,則需引用此法。

  • SqlDataSource 或 AccessDataSource 可以輕易地自「伺服器總管」視窗的「資料連接」中的資料表,以拖曳的方式自動產生 GridView,毋須設計程式碼就可執行顯示、新增、刪除、修改等功能,但是,若要以程式碼藉由 SqlDataSource 或 AccessDataSource 執行這些功能該如何運用呢?
    下例之插入程式碼可供參考(刪除、修改皆相似):

    SqlDataSource1.InsertParameters.Clear()
    SqlDataSource1.InsertCommand ="INSERT INTO [Stud_Data] ([StudID], [CName]) VALUES (@StudID, @CName)"
    SqlDataSource1.InsertParameters.Add("StudID", "9911006")
    SqlDataSource1.InsertParameters.Add("CName", "黃文文")
    If SqlDataSource1.Insert = 0 Then
        'lblMsg.Text = "Error!"
    End If

    修改(Update)程式碼:

    SqlDataSource1.UpdateParameters.Clear()
    SqlDataSource1.UpdateCommand = "UPDATE [DirGroup] SET [iCount] = [iCount]+1 WHERE [SN] = @SN"
    SqlDataSource1.UpdateParameters.Add("SN", lblSN.Text)
    If SqlDataSource1.Update = 0 Then
        'lblMsg.Text = "Error!"
    End If

    刪除(Delete)程式碼:

    SqlDataSource1.DeleteParameters.Clear()
    SqlDataSource1.DeleteCommand = "DELETE FROM [Member] WHERE [SN] = @SN"
    SqlDataSource1.DeleteParameters.Add("SN", lblSN.Text)
    If SqlDataSource1.Delete = 0 Then
        'lblMsg.Text = "Error!"
    End If

r李明山 如意網站 ASP.NET 教學網