标题:GridView怎么删除行
只看楼主
pietro
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2006-9-19
 问题点数:0 回复次数:6 
GridView怎么删除行
我想在GridView里删除行,代码如下:
private void GridViewToBind()
{
OleDbConnection con = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/web/mdb/data.mdb");
con.Open();
OleDbDataAdapter odr = new OleDbDataAdapter();
odr.SelectCommand = new OleDbCommand("select * from login", con);
DataSet ds = new DataSet();
odr.Fill(ds, "emp");
this.GridView1.DataKeyNames = "userID";
this.GridView1.DataSource = ds.Tables["emp"].DefaultView;
this.GridView1.DataBind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string userID = this.GridView1.DataKeys[e.RowIndex].ToString();
OleDbConnection con = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/web/mdb/data.mdb");
con.Open();
OleDbCommand cmd = new OleDbCommand("delete from login where userID='" + userID + "'", con);
cmd.ExecuteNonQuery();
this.GridViewToBind();
}


运行错误,提示说无法将类型“string”隐式转换为“string[]”,错误行为:
this.GridView1.DataKeyNames = "userID";


请问怎么写才对???
搜索更多相关主题的帖子: GridView odr Microsoft web quot 
2006-11-19 18:36
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
你在属性里面设置 DataKeyNames 它的值吧.因为 DataKeyNames 是个数组类型,可以同时为多个.

飘过~~
2006-11-19 20:29
tel1982
Rank: 3Rank: 3
来 自:水星
等 级:新手上路
威 望:8
帖 子:852
专家分:0
注 册:2006-10-21
得分:0 

怎么设置呀版主??


Face up to life with smiles no matter what happens
2007-05-12 13:12
jclman
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2007-3-10
得分:0 
如果直接在.aspx.cs文件里面编写的话,就这样写:

private void GridViewToBind()
{
OleDbConnection con = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/web/mdb/data.mdb");
con.Open();
OleDbDataAdapter odr = new OleDbDataAdapter();
odr.SelectCommand = new OleDbCommand("select * from login", con);
DataSet ds = new DataSet();
odr.Fill(ds, "emp");

string[] user=new string[]{"userID"};
this.GridView1.DataKeyNames =user;

//当然这里是单个就直接=user,如是多个就的用数组表示

this.GridView1.DataSource = ds.Tables["emp"].DefaultView;
this.GridView1.DataBind();
}


不要说不行,要知道我们都能够!!!欢迎光临我的博客http://blog..cn/jclman
2007-05-12 14:59
川流不息
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2000
专家分:47
注 册:2006-11-8
得分:0 

this.GridView1.DataKeyNames = "userID";
this.GridView1.DataSource = ds.Tables["emp"].DefaultView;
this.GridView1.DataBind();

你把順序搞反了:


this.GridView1.DataSource = ds.Tables["emp"].DefaultView;
this.GridView1.DataKeyNames = "userID";
this.GridView1.DataBind();



日月更替,天地輪回,人間已是幾回春。 江山不老,人正少年,只手能擎半邊天。
2007-05-13 21:44
stonefang
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2007-3-20
得分:0 

请楼上的看看我的,我做删除也不能,不知道怎么改.
错误是:索引超出范围。必须为非负值并小于集合大小。
参数名: index
protected void Gv_userlist_RowDeleting(object sender, GridViewDeleteEventArgs e)
{//删除
string st_sqlstr = "delete from Users where User_id=@userid";
SqlCommand st_comm = new SqlCommand(st_sqlstr, conn);
st_comm.Parameters.Add(new SqlParameter("@userid", SqlDbType.VarChar, 50));
//st_comm.Parameters["@userid"].Value = st_dtg_userinformation.DataKeys[(int)e.Item.ItemIndex];
//st_comm.Parameters["@userid"].Value = Gv_userlist.DataKeys[(int)e.RowIndex].ToString();//debug
st_comm.Parameters["@userid"].Value=Gv_userlist.DataKeys[(int)e.RowIndex].Values[0].ToString();
st_comm.Connection.Open();
try
{
st_comm.ExecuteNonQuery();
Lbl_note.Text = "删除成功";

}
catch (SqlException)
{
Lbl_note.Text = "删除失败";
Lbl_note.Style["color"] = "red";
}
st_comm.Connection.Close();
St_BindGridView();
}


我就是我! 从那跌到从那爬起! E-mail:fangguang2008@
2007-05-27 22:48
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
上面的代码有没有什么错误信息???

飘过~~
2007-05-28 09:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-104047-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029666 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved