首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不带存储过程的ObjectDataSource绑定网格视图

问使用不带存储过程的ObjectDataSource绑定网格视图
EN

Stack Overflow用户
提问于 2012-01-13 20:39:43
回答 2查看 3.3K关注 0票数 1

我有1000条记录要显示在网格视图中,所以我使用ObjectDataSource绑定到网格视图。

代码语言:javascript
复制
 <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 method的方法,它用于从DB检索数据。

代码语言:javascript
复制
public int ExecuteNonQuery(CommandType commandType, string sql, MySqlParameter[] commandParameters)
{
   ...
   return rowsAffected;
}

所以在我的OjectdataSource的Getdata方法中

代码语言:javascript
复制
 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 Organisationid=@OrganisationID 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);
}

web上所有的例子都是用存储过程实现的,有人能帮我做一下吗?我在这里得到的错误是我无法绑定网格视图,无法将数据集转换为可更新数据集。那么,如何使用datatable绑定到网格视图呢?

EN

回答 2

Stack Overflow用户

发布于 2012-01-13 20:49:11

只需将SelectMethod的签名从

代码语言:javascript
复制
private DataView GetData(int StartRow, int PageSize)

至

代码语言:javascript
复制
public DataTable GetProducts(MyNewParameter,StartRow,PageSize)

并在方法的末尾返回dt。

一个很好的例子:http://www.codeproject.com/KB/aspnet/PagingWithODS.aspx

票数 0
EN

Stack Overflow用户

发布于 2012-01-13 20:51:37

如何使用数据表绑定到网格视图

此示例说明如何使用DataTable作为数据源绑定到GridView:

代码语言:javascript
复制
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的情况下执行select查询。

如果您使用的是System.Data.SqlClient而不是MySql.Data.MySqlClient,请将这些类重命名为SqlCommand和SqlDataAdapter。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8850712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档