在一个页面中拖一个GridView,建立了一个按钮列,命令是Edit,
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
string cardID = Convert.ToString(GridView1.DataKeys[e.NewEditIndex].Value);
Response.Redirect("DetailInfo.aspx?cardID="+cardID+"");//传递ID列的值
}
取得此行记录ID列的值后,查看此行的详细信息,以下是DetailInfo.aspx页的Page_Load方法:
protected void Page_Load(object sender, EventArgs e)
{
string cID = Request.QueryString["cardID"];
DB db = new DB();//DB是自己写的数据库操作类
SqlConnection con = db.createCon();
con.Open();
SqlCommand cmd=new SqlCommand("select * from customer where ID='" + cID + "'", con);
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
......后面代码省略,主要是让sdr中的数据在页面上显示出来
}
但是当运行后我单击GridView1的已行时,在GridView1_RowEditing方法中的GridView1.DataKeys[e.NewEditIndex]这已句中出现一个异常,提示Index参数超出了集合的范围,记得我在另一个程序中这么用是可以的啊!
请高手指点~~~
解决方案 »
- C#2008中不能远程连接SQL2000
- 高手求助:c#中 如何获取鼠标在控件坐标系中的坐标并实时显示,不是屏幕坐标
- 请问如何解析出字符串中第一个数字的索引。
- 这条SQL语句对于新的要求如何修改 方可适应 ?
- C#什么时候使用xml注释?
- 时间问题,如何求得天数
- 請高手們幫幫忙啊! Winform中DataGrid的列標題如何換行?
- pictureBox中添加lable子控件 子控件会随着鼠标移动 但移动时会频闪请问咋解决
- 急寻CA认证中心的实现!高手赐教!高分相赠!!
- 我用想把启动进程的一些信息写到打开的文本内去,如何处理?
- 从学校出来后走上工作是得具体情况和注意事项(希望务必说一下)
- 帮我看看这个代码翻译问题,该问题以前是利用VB。NET语言调用VB6的组件实现与硬件的一个通讯,组件功能完好,但调用时有问题请帮忙看看
改为SqlCommand cmd=new SqlCommand("select * from customer where ID=“ +”‘“+ cID + "'", con);
cID 是个字符串,在数据库上查询前后都要加引号,但是你只给他后面加上了,前面没加。