求助最简单的delete语句

slowly0321 2012-05-08 05:27:55
string sql=int.Form("delete from T1 where ID='{0}'",n)

其中ID是主键,若n是选中行ID的值,怎么得到n?

其实就是怎么得到鼠标选中行的主键值?

各位大神,帮帮忙吧,我新手菜鸟
...全文
160 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangchun1213 2012-05-09
  • 打赏
  • 举报
回复
楼上有几位已经给出了答案,呼呼,祝你好运
slowly0321 2012-05-09
  • 打赏
  • 举报
回复
谢谢各位前辈啊,现在明白了
tiangong789 2012-05-09
  • 打赏
  • 举报
回复
7楼正解 就是要在数据绑定的时候给表格设置datakeynames=new string[]{ID,...} 然后在要删除的时候取得Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString())就OK了。。
snly_zs 2012-05-09
  • 打赏
  • 举报
回复
if (e.CommandName == "deleteRow")写错了 应该是delRow
snly_zs 2012-05-09
  • 打赏
  • 举报
回复

<script type="text/javascript">
function checkDelete() {
return confirm('是否删除?');
}
</script>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowCommand="GridView1_RowCommand" >
<Columns>
<asp:BoundField DataField="ID" HeaderText="编号" />
<asp:BoundField DataField="NameL" HeaderText="名称" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lkBtnDelete" runat="server" Text="删除" CommandArgument='<%# Eval("ID") %>'
CommandName="delRow" OnClientClick="return checkDelete()"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


/// <summary>
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "deleteRow")
{
int ID = Convert.ToInt32(e.CommandArgument);//获取ID
string sqlstr = "delete from T1 where ID=" + ID.toString();
sqlcon = new SqlConnection(strCon);
sqlcom = new SqlCommand(sqlstr,sqlcon);
sqlcon.Open();
int i=sqlcom.ExecuteNonQuery();
sqlcon.Close();
if(i>0)
this.Page.ClientScript.RegisterStartupScript(this.GetType(), null, "alert('删除此行数据成功!');", true);
//然后绑定
}
}

EnForGrass 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 2 楼 的回复:
和你使用的控件还有绑定的数据有关。


是GridView 的控件。
绑定的数据是个表,表名是NameL,两个列分别是ID,NameL,其中ID列是主键
[/Quote]


//删除
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string sqlstr = "delete from T1 where ID=" + Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());//ID是主键
sqlcon = new SqlConnection(strCon);
sqlcom = new SqlCommand(sqlstr,sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
bind();
}


//绑定
public void bind()
{
string sqlstr = "select * from T1";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, "T1");
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "ID" };//主键
GridView1.DataBind();
sqlcon.Close();
}
}
slowly0321 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
和你使用的控件还有绑定的数据有关。
[/Quote]

是GridView 的控件。
绑定的数据是个表,表名是NameL,两个列分别是ID,NameL,其中ID列是主键
slowly0321 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
引用 6 楼 的回复:

引用 2 楼 的回复:
和你使用的控件还有绑定的数据有关。


是GridView 的控件。
绑定的数据是个表,表名是NameL,两个列分别是ID,NameL,其中ID列是主键



C# code

//删除
protected void GridView1_RowDeleting(object sender, GridView……
[/Quote]


大哥,你代码里
string sqlstr = "delete from T1 where ID=" + Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
这句当中,为什么我写不出来.Datakeys呢?
Ki1381 2012-05-08
  • 打赏
  • 举报
回复
确认鼠标选中的行号就是ID?隐患很大啊。。。你不能根据别的内容排序,不能跳号。。。。

得到鼠标选中行的主键值最简单的方法就是dataGridView1.selectedRow[0].cell["ID"].tostring();但前提是Grid中必须要有ID这个列,可以是隐藏的。

麻烦一点可以用this.BindingContext[dataGridView1.DataSource].Current。比如,DataSource是DataSet,

DataRowView drv = (DataRowView)this.BindingContext[dataGridView1.DataSource].Current;
int id= int.Parse(drv["ID"].ToString());

好处是dataGirdView1中可以不必包含ID列。(但是DataSource的提供者必须包含)
Hatake 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
string sql=int.Form("delete from T1 where ID='{0}'",n)

其中ID是主键,若n是选中行ID的值,怎么得到n?

其实就是怎么得到鼠标选中行的主键值?

各位大神,帮帮忙吧,我新手菜鸟
[/Quote]

没看懂...是从自定义控件还是系统控件拿数据?
熙风 2012-05-08
  • 打赏
  • 举报
回复
楼主你糊涂了吧?
选中神马得到ID?
DataGridView 得到ID,,DataGridView .selectedRow[0].cell["ID"].tostring();
列表必须有ID的列,隐藏列即可
saybookcat 2012-05-08
  • 打赏
  • 举报
回复
和你使用的控件还有绑定的数据有关。
whowhen21 2012-05-08
  • 打赏
  • 举报
回复
什么鼠标选中行啊,GridView???

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧