2012-01-13 23 views
1

我有1000個記錄要顯示在網格視圖中,所以我使用ObjectDataSource來綁定到網格視圖。數據綁定使用ObjectDataSource而不使用存儲過程的GridView

<asp:ObjectDataSource ID="odsProducts" runat="server" SelectMethod="GetProducts" 
       TypeName="ProductsList" EnablePaging="True" MaximumRowsParameterName="PageSize" 
       SelectCountMethod="GetRowsCount" StartRowIndexParameterName="StartRow"></asp:ObjectDataSource> 

        <asp:GridView ID="UserTable" runat="server" AllowPaging="True" DataSourceID="odsProducts" 
         SelectedIndex="0" DataKeyNames="UserID" ShowHeaderWhenEmpty="True" BorderStyle="Groove" 
         OnRowDataBound="UserTable_RowDataBound" AutoGenerateColumns="false"> 

在數據訪問層我有一個類[Dataserver]它執行打開和關閉連接,我有一個名爲ExecuteNonQuery方法,其用於檢索從DB數據的方法。

public int ExecuteNonQuery(CommandType commandType, string sql, MySqlParameter[] commandParameters) 
{ 
    ... 
    return rowsAffected; 
} 

所以在網絡的OjectdataSource

private DataView GetData(int StartRow, int PageSize) 
{ 
    DataServer server = new DataServer(); 
    DataTable dt = new DataTable(); 
    int newOrgID = 60; 
    string userQuery = "Select tbl_User.UserID, tbl_User.FirstName, tbl_User.LastName, tbl_User.Email, tbl_User.PhoneNumber, tbl_User.CreatedBy, tbl_Organisation.OrganisationName from tbl_user WHERE [email protected] order by tbl_user.LastName asc"; 
    MySqlParameter[] para = new MySqlParameter[1]; 
    para[0] = new MySqlParameter("@OrganisationID", MySqlDbType.Int32); 
    para[0].Value = newOrgID ; 
    dt = server.ExecuteQuery(CommandType.Text, userQuery, para); 
} 

所有的例子我GetData方法與存儲過程可以有一個人幫我做這個。我在這裏得到的錯誤是我無法綁定網格視圖,無法將數據集轉換爲datable。所以,如何使用數據表做綁定到GridView

回答

0

如何使用數據表做綁定到GridView

這個例子顯示瞭如何使用數據表作爲您的數據源綁定到一個GridView:

MySqlCommand sm = new MySqlCommand("SELECT * FROM table", database_connection); 
MySqlDataAdapter sa = new MySqlDataAdapter(sm); 
DataTable dt = new DataTable(); 
sa.Fill(dt); // store query results in dt 

gv.DataSource = dt; 
gv.DataBind(); 

這也說明了如何在不使用存儲過程或ObjectDataSource的情況下執行選擇查詢。

如果您使用的是System.Data.SqlClient而不是MySql.Data.MySqlClient,請將類重命名爲SqlCommandSqlDataAdapter

相關問題