GridView中跳转页面的时候传值的问题

我想实现在前一个页面的GridView中的HyperLinkFiled通过ID跳转到下一个页面,下一个页面通过这个ID在数据库读取数据,这样一个动态的效果。后一个页面怎么... 我想实现在前一个页面的GridView中的HyperLinkFiled通过ID跳转到下一个页面,下一个页面通过这个ID在数据库读取数据,这样一个动态的效果。
后一个页面怎么才能获取到前一个页面的值,我写了代码:
protected void Page_Load(object sender, EventArgs e)
{
string ID = Request.Params["ID"].ToString();

string commandstr = "Select bt,wjh,nr,gxr,sj From zwgk Where ID=" + ID;

DataTable dt = getTable(commandstr);
this.Repeater1.DataSource = dt;
this.Repeater1.DataBind();

this.Label1.Text = dt.Rows[0][2].ToString();
this.Label1.DataBind();
this.Label2.Text = dt.Rows[0][4].ToString();
this.Label2.DataBind();
this.Label4.Text = dt.Rows[0][5].ToString();
this.Label4.DataBind();
this.Label5.Text = dt.Rows[0][3].ToString();
this.Label5.DataBind();
}
protected DataTable getTable(string commandstt)
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\swj\\123\\123.mdb");

conn.Open();

DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(commandstr, conn);
da.Fill(ds, "zwgk");

conn.Close();

return ds.Tables["zwgk"];
}

不过在执行的时候commandstr报错,怎么做都不对,忘高手解决。
贴可以用的详细代码,新手谢过···
展开
 我来答
绯雨晨
2010-03-22 · TA获得超过141个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:120万
展开全部
你接收的只是1个ID吧?可以使用 string id = Request.QueryString["ID"];接收.
还有,ID是int类型的吧,把它转换一下类型.
string ID = "";
string commandstr = "";
if(Request.QueryString["ID"] != null)
{
id = Request.QueryString["ID"];
commandstr = "Select bt,wjh,nr,gxr,sj From zwgk Where ID=" + Convert.ToInt32(id);
}
然后在下面调用的时候判断commandstr是否为空,部位空就继续,为空就提示.
方面里面调用接收的参数,变量名称要一样 = =
百度网友cf38862
2010-03-23 · 超过77用户采纳过TA的回答
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:140万
展开全部
string ID = Request.Params["ID"].ToString();
你看看你接收上个页面传来的ID是否为NULL啊,代码没有什么太大的问题,如果有值的话、、、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
523824Love
2010-03-24
知道答主
回答量:9
采纳率:0%
帮助的人:6.5万
展开全部
GridView中添加一个末班列,在模板列中添加linkButten标签,设置它的属性,在CommandArgument属性上绑定上ID在CommandName属性上给他一个名字
接下来在GridView的RowCommand事件上可以得到你所点击得哪一行得ID
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int AccId = Convert.ToInt32(e.CommandArgument);
string cmd = e.CommandName;

if(cmd=="de")
{
AccessoryFileManager.DeleteAccessoryFileById(AccId);

}

int fileId = Convert.ToInt32(Session["fileid"]);
DisplyAccFile(fileId);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zxlyinjie
2010-03-22 · 超过21用户采纳过TA的回答
知道答主
回答量:97
采纳率:100%
帮助的人:48.6万
展开全部
额 protected DataTable getTable(string commandstt)//这里重命名了 和上面的那个不一样哦.. 多了个t
OleDbDataAdapter da = new OleDbDataAdapter(commandstr, conn)
//而这里还是用的以前的cmd语句 所以为空 当然报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式