急,使用DataGrid分页时出现错误...在线等...
<%@ Page Language="C#" Debug="true" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">
//定义一个全局变量mycx,存储DQL查询命令
string mycx;
void Page_Load(object sender, System.EventArgs e)
{
if(this.IsPostBack)
return;
}
//DataGrid的自动分页
void DataGrid1_PageIndexChanged(object sender,System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.myt.CurrentPageIndex=e.NewPageIndex;
this.bind(mycx);
}
//绑定数据到DataGrid
void bind(string mycx)
{
this.myt.DataSource=this.getDataSource(mycx);
this.myt.Columns[10].ItemStyle.Width=Unit.Parse("150");
this.myt.DataBind();
}
//获取数据源
DataTable getDataSource(string mycx)
{
System.Data.SqlClient.SqlConnection conn;
conn=new System.Data.SqlClient.SqlConnection(this.getConnectionString());
conn.Open();
System.Data.SqlClient.SqlDataAdapter sqlDataAdaper=new System.Data.SqlClient.SqlDataAdapter(mycx,conn);
System.Data.DataSet dset=new DataSet();
sqlDataAdaper.Fill(dset,"sc");
conn.Close();
return dset.Tables["sc"];
}
//SQL数据表打开命令字符串
string getConnectionString()
{
string strcon="server=server;database=sanfei;uid=sa;pwd=123456;";
strcon+="Connect Timeout=30";
return strcon;
}
//查询按钮的单击事件
void Button1_Click(object sender, EventArgs e) {
//处理从文本框、下拉菜单中获得的数据
string ye1=Request.Form["TextBox2"]+"/"+Request.Form["TextBox3"]+"/"+Request.Form["TextBox1"];
string ye2=Request.Form["TextBox5"]+"/"+Request.Form["TextBox6"]+"/"+Request.Form["TextBox4"];
string bancc=Request.Form["DropDownList2"];
string banzc=Request.Form["DropDownList1"];
string banc="";
string banz="";
switch (bancc)
{
case "全部":
banc="";
break;
case "白班":
banc="and name='白班'";
break;
case "夜班":
banc="and name='夜班'";
break;
}
switch (banzc)
{
case "全部":
banz="";
break;
case "朱小燕":
banz="and bz='朱小燕'";
break;
case "刘瑞良":
banz="and bz='刘瑞良'";
break;
case "陈少华":
banz="and bz='陈少华'";
break;
}
//得到SQL查询命令,写入变量mycx中
mycx="Select mdate,name,tl,zsl,ym,ztime,ttime,twhy,stime,gtime,bz from shaocheng where mdate>='";
mycx+=ye1+"' and mdate<='"+ye2+"' "+banc+" "+banz;
//运行数据绑定
this.bind(mycx);
}
</script>
<html>
-------------------略-----------------------------
查询条件输入的文本框、下拉菜单等控件...提交查询按钮
DataGrid 控件
-------------------略-----------------------------
</html>
==================================================
运行后DataGrid显示查询结果,‘第一页’时正常,点击链接进入‘下一页’时错误:
ExecuteReader:CommandText 属性尚未初始化
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: ExecuteReader:CommandText 属性尚未初始化
源错误:
行 53: System.Data.SqlClient.SqlDataAdapter sqlDataAdaper=new System.Data.SqlClient.SqlDataAdapter(mycx,conn);
行 54: System.Data.DataSet dset=new DataSet();
行 55: sqlDataAdaper.Fill(dset,"sc");
行 56:
行 57: conn.Close();
源文件: F:\sanfei\fshaocheng.aspx 行: 55
堆栈跟踪:
[InvalidOperationException: ExecuteReader:CommandText 属性尚未初始化]
System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean executing) +333
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream) +103
System.Data.SqlClient.SqlCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +9
System.Data.Common.DbDataAdapter.Fill(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +121
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +77
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +36
ASP.fshaocheng_aspx.getDataSource(String mycx) in F:\sanfei\fshaocheng.aspx:55
ASP.fshaocheng_aspx.bind(String mycx) in F:\sanfei\fshaocheng.aspx:42
ASP.fshaocheng_aspx.DataGrid1_PageIndexChanged(Object sender, DataGridPageChangedEventArgs e) in F:\sanfei\fshaocheng.aspx:37
System.Web.UI.WebControls.DataGrid.OnPageIndexChanged(DataGridPageChangedEventArgs e) +110
System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e) +349
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e) +100
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +120
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +115
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
System.Web.UI.Page.ProcessRequestMain() +1263