初学c#,高手请帮我看看这段代码!我基本能看懂,但不知道出了什么问题. 在page_load里的代码需要先判断if (!IsPostBack){//原来page_load代码;}因为每次页面加载都执行一次的话就等于刷新一次,把你点击第二页的操作覆盖了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DataGrid的PageIndexChanged事件处理代码加了吗? 大侠,我试过了,还是不对!我加在了//***之前结束在DataGrid1.DataBind();之后,对吗? DataGrid的CurrentPageIndex属性必须是在绑定数据之前设置才有用的。 同时你要清楚PageLoad方法是在你定义的事件处理程序之前执行的,你现在代码的写法不是很好,应该把数据绑定的代码独立成一个方法。 //string MyConnString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\myweb.mdb"; string MyConnString = @"Provider=Microsoft.Jet.OleDB.4.0;Data Source=c:\myweb.mdb"; string strSel1 = "select * from members"; DataSet MyDataSet = new DataSet();以上几句是不会错误的。 OleDbConnection MyConnection = new OleDbConnection(MyConnString);你的连接字串应该也没有错误。 //打开DataAdapter OleDbDataAdapter MyAdapter1 = new OleDbDataAdapter(strSel1,MyConnection);这一句如果是我的话不会这么写。我这样写:OleDbCommand objCom=new OleDbCommand(Sql语句,MyConnection);OleDbDataAdapter MyAdapter1 =new OleDbDataAdapter(objCom);不过这样写也没有错 //将各表的数据,存入DataSet MyAdapter1.Fill(MyDataSet,"members");这个地方需要加一句:dataset.Tables.Add("members");然后再MyAdapter1.Fill(MyDataSet,"members"); //交给DataGrid去显示 DataGrid1.DataSource = MyDataSet.Tables["members"].DefaultView; DataGrid1.DataBind();这两句没有什么错. private void dg_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { dg.CurrentPageIndex=e.NewPageIndex; dg.DataBind(); } dataset.Tables.Add("members");//这句没有必要.MyAdapter1.Fill(MyDataSet,"members");因为如果DATASET没有一个名字members的表,MyAdapter1会自动造一个. <%@ Page Language="C#" Debug="true" %><% @ Import Namespace="System.Data" %><% @ Import Namespace="System.Data.OleDb" %><Script Language="C#" Runat="Server">public void Page_Load(Object src,EventArgs e){ //各种String的设置 //string MyConnString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\myweb.mdb"; string MyConnString = @"Provider=Microsoft.Jet.OleDB.4.0;Data Source=c:\myweb.mdb"; string strSel1 = "select * from members"; DataSet MyDataSet = new DataSet(); OleDbConnection MyConnection = new OleDbConnection(MyConnString); //打开DataAdapter OleDbDataAdapter MyAdapter1 = new OleDbDataAdapter(strSel1,MyConnection); //将各表的数据,存入DataSet MyAdapter1.Fill(MyDataSet,"members"); //交给DataGrid去显示 DataGrid1.DataSource = MyDataSet.Tables["members"].DefaultView; DataGrid1.DataBind(); }private void DataGrid1_PageIndexChanged(object source,System.Web.UI.WebControls.DataGridPageChangedEventArgs e){ DataGrid1.CurrentPageIndex=e.NewPageIndex; DataGrid1.DataBind();}</script><html><head><title></title></head><body><form runat="server"><ASP:DataGrid id="DataGrid1" runat="server"AllowPaging="True"PageSize="12"PagerStyle-Mode="NumericPages"BorderColor="black"BorderWidth="1"GridLines="Both"CellPadding="3"CellSpacing="0"Font-Name="Verdana"Font-Size="8pt"HeaderStyle-BackColor="#aaaadd"AlternatingItemStyle-BackColor="#eeeeee"OnPageIndexChanged="DataGrid1_PageIndexChanged"/></form></body></html> winform如何点击按钮后生成textbox控件,并设置其属性,例如拖拽位置等 C#什么数据类型可以支持32位的整数? 枚举类型问题请教? 初学者的问题二:三态CheckBox Timer是否多线程 如何让文本框里的特定的字的颜色和其它的字不一样 关于无刷新页面的问题(急)! 发布c#开发的休闲游戏-偷心贼(也就是贪吃蛇) 关于从html的字符串中截取一块div出来 关于终止代码运行的问题,求大神 受不了C#的打印啦!! 如何查远程计算机的CPU利用率、主频、个数和内存等参数?
我加在了//***之前
结束在DataGrid1.DataBind();
之后,对吗?
同时你要清楚PageLoad方法是在你定义的事件处理程序之前执行的,你现在代码的写法不是很好,应该把数据绑定的代码独立成一个方法。
string MyConnString = @"Provider=Microsoft.Jet.OleDB.4.0;Data Source=c:\myweb.mdb"; string strSel1 = "select * from members";
DataSet MyDataSet = new DataSet();
以上几句是不会错误的。 OleDbConnection MyConnection = new OleDbConnection(MyConnString);
你的连接字串应该也没有错误。
//打开DataAdapter OleDbDataAdapter MyAdapter1 = new OleDbDataAdapter(strSel1,MyConnection);
这一句如果是我的话不会这么写。
我这样写:OleDbCommand objCom=new OleDbCommand(Sql语句,MyConnection);
OleDbDataAdapter MyAdapter1 =new OleDbDataAdapter(objCom);
不过这样写也没有错
//将各表的数据,存入DataSet
MyAdapter1.Fill(MyDataSet,"members");
这个地方需要加一句:
dataset.Tables.Add("members");
然后再MyAdapter1.Fill(MyDataSet,"members");
//交给DataGrid去显示
DataGrid1.DataSource = MyDataSet.Tables["members"].DefaultView;
DataGrid1.DataBind();
这两句没有什么错.
{
dg.CurrentPageIndex=e.NewPageIndex;
dg.DataBind();
}
MyAdapter1.Fill(MyDataSet,"members");因为如果DATASET没有一个名字members的表,MyAdapter1会自动造一个.
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.OleDb" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
//各种String的设置
//string MyConnString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\myweb.mdb";
string MyConnString = @"Provider=Microsoft.Jet.OleDB.4.0;Data Source=c:\myweb.mdb"; string strSel1 = "select * from members";
DataSet MyDataSet = new DataSet();
OleDbConnection MyConnection = new OleDbConnection(MyConnString);
//打开DataAdapter
OleDbDataAdapter MyAdapter1 = new OleDbDataAdapter(strSel1,MyConnection);
//将各表的数据,存入DataSet
MyAdapter1.Fill(MyDataSet,"members");
//交给DataGrid去显示
DataGrid1.DataSource = MyDataSet.Tables["members"].DefaultView;
DataGrid1.DataBind();
}private void DataGrid1_PageIndexChanged(object source,System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
DataGrid1.DataBind();
}
</script>
<html>
<head>
<title></title>
</head>
<body>
<form runat="server">
<ASP:DataGrid id="DataGrid1" runat="server"
AllowPaging="True"
PageSize="12"
PagerStyle-Mode="NumericPages"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"
OnPageIndexChanged="DataGrid1_PageIndexChanged"
/>
</form>
</body>
</html>