新手提问: 如何删除datagrid 里的一条数据(同时删除数据库对应的数据),

cih006 2005-05-20 08:05:02
如题
...全文
202 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cih006 2005-05-20
  • 打赏
  • 举报
回复
顶下
cih006 2005-05-20
  • 打赏
  • 举报
回复
我是想知道如何得到在datagrid中选中数据在数据库中所对应的ID
cih006 2005-05-20
  • 打赏
  • 举报
回复
to singlepine(小山) :

我说的是 winform

to dutguoyi(新鲜鱼排) :

我的意思是说,选中datagrid 列出来的一条数据,然后点删除,把对应在数据库中的记录也删除。
(我是想知道如何得到我选中数据在数据库中对应的ID)
syeerzy 2005-05-20
  • 打赏
  • 举报
回复
删除后重新绑定。







zr1982930 2005-05-20
  • 打赏
  • 举报
回复
看DataGrid 的 属性生成器 ,删除后要重新绑定!
littlekeen 2005-05-20
  • 打赏
  • 举报
回复
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
SqlConnection conn = new SqlConnection("server = localhost; database = ?; uid = sa; pwd = sa");
string str = "delete from ? where user_code="+"'"+e.Item.Cells[0].Text+"'";
SqlCommand cmd = new SqlCommand(str,conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
this.DataGrid1.EditItemIndex =-1;
if((DataGrid1.Items.Count ==1)&&(this.DataGrid1.CurrentPageIndex>0))
this.DataGrid1.CurrentPageIndex--;
this.bind_grid();
}
gougou_blue 2005-05-20
  • 打赏
  • 举报
回复
<asp:datagrid id="DataGrid1" runat="server" Width="648px" AutoGenerateColumns="False" OnDeleteCommand="DataGrid1_DeleteCommand"
OnCancelCommand="DataGrid1_CancelCommand" OnEditCommand="DataGrid1Edit" OnUpdateCommand="DataGrid1_UpdateCommand"
DataKeyField="name" AllowPaging="True" AllowCustomPaging="True">
<Columns>
<asp:BoundColumn DataField="name" ReadOnly="True" HeaderText="姓名"></asp:BoundColumn>
<asp:BoundColumn DataField="acc" HeaderText="帐号"></asp:BoundColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
<asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete"></asp:ButtonColumn>
</Columns>

后台
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (Page.IsPostBack == false)
{
Bind();
}
}
private void Bind()
{
Catalog cata = new Catalog();
DataGrid1.DataSource=cata.GetSource();
DataGrid1.DataBind();
}
public void DataGrid1Edit(Object sender, DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex =(int)e.Item.ItemIndex;

Bind();
}

public void DataGrid1_UpdateCommand(Object sender, DataGridCommandEventArgs e)
{



string name = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();

string acc = ((TextBox)e.Item.Cells[1].Controls[0]).Text.Trim();


Catalog cata = new Catalog();
cata.UpDate(name,acc);
DataGrid1.EditItemIndex = -1;
Bind();
}

public void DataGrid1_CancelCommand(Object sender, DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = -1;
Bind();
}

public void DataGrid1_DeleteCommand(Object sender, DataGridCommandEventArgs e)
{
string name = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
Catalog cata = new Catalog();
cata.DeleteDate(name);
Bind();
}

public void Button1_Click(object sender, System.EventArgs e)
{
Catalog cata = new Catalog();
cata.AddDate(TextBox1.Text,TextBox2.Text);
Bind();
}

using System;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;

namespace web
{
/// <summary>
/// Catalog 的摘要说明。
/// </summary>
public class Catalog
{
public Catalog()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public SqlDataReader GetSource()
{

string strcon = ConfigurationSettings.AppSettings["sconect"];
SqlConnection MyConnection =new SqlConnection(strcon);

//存储过程
SqlCommand MyCommd = new SqlCommand("test_find",MyConnection);
MyCommd.CommandType = CommandType.StoredProcedure;

MyConnection.Open();
return (MyCommd.ExecuteReader(CommandBehavior.CloseConnection));


}

public void UpDate(string name ,string acc)
{
string strcon = ConfigurationSettings.AppSettings["sconect"];
SqlConnection MyConnection =new SqlConnection(strcon);


//存储过程
SqlCommand MyCommd = new SqlCommand("test_update",MyConnection);
MyCommd.CommandType = CommandType.StoredProcedure;


//声明输入变量
MyCommd.Parameters.Add("@name",SqlDbType.VarChar,10);
MyCommd.Parameters.Add("@acc",SqlDbType.VarChar,100);
MyCommd.Parameters["@name"].Value = name;
MyCommd.Parameters["@acc"].Value = acc;
//打开数据库执行
MyConnection.Open();
MyCommd.ExecuteNonQuery();
MyConnection.Close();
}

public void DeleteDate(string name )
{
string strcon = ConfigurationSettings.AppSettings["sconect"];
SqlConnection MyConnection =new SqlConnection(strcon);


//存储过程
SqlCommand MyCommd = new SqlCommand("test_delete",MyConnection);
MyCommd.CommandType = CommandType.StoredProcedure;
//声明输入变量
MyCommd.Parameters.Add("@name",SqlDbType.VarChar,10);

MyCommd.Parameters["@name"].Value = name;

//打开数据库执行
MyConnection.Open();
MyCommd.ExecuteNonQuery();
MyConnection.Close();

}

public void AddDate(string name ,string acc)
{
string strcon = ConfigurationSettings.AppSettings["sconect"];
SqlConnection MyConnection =new SqlConnection(strcon);


//存储过程
SqlCommand MyCommd = new SqlCommand("test_add",MyConnection);
MyCommd.CommandType = CommandType.StoredProcedure;

//声明输入变量
MyCommd.Parameters.Add("@name",SqlDbType.VarChar,10);
MyCommd.Parameters.Add("@acc",SqlDbType.VarChar,100);
MyCommd.Parameters["@name"].Value = name;
MyCommd.Parameters["@acc"].Value = acc;

//打开数据库执行
MyConnection.Open();
MyCommd.ExecuteNonQuery();
MyConnection.Close();

}


}
}
存储过程
REATE PROCEDURE test_delete
(@name varchar(10))
AS
DELETE FROM test
WHERE name =@name
GO




shanminmin 2005-05-20
  • 打赏
  • 举报
回复
重新邦定的效率很低呀。使用SqlDataAdapter的更新功能多好?代码还简单。
新鲜鱼排 2005-05-20
  • 打赏
  • 举报
回复
public void deleteperson(string id)
{
SqlConnection connection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["db"]);
SqlCommand command=new SqlCommand("getpersonbyid",connection);
command.CommandType=CommandType.StoredProcedure;
command.Parameters.Add("@id",SqlDbType.VarChar,50);
command.Parameters["@id"].Value=id;
SqlDataAdapter adapter=new SqlDataAdapter();
adapter.SelectCommand=command;
DataSet ds=new DataSet();
adapter.Fill(ds);

string deletestr =" delete from stu_inf where id = '"+id+"'";
SqlCommand com = new SqlCommand(deletestr,connection);
com.Connection.Open();
com.ExecuteNonQuery();

connection.Close();
connection.Dispose();
com.Dispose();
ds.Dispose();

}
这就是一个简单的删除程序,你就在删除以后重新绑定
singlepine 2005-05-20
  • 打赏
  • 举报
回复
http://www.cnblogs.com/lovecherry/archive/2005/03/25/125487.html
http://dotnet.aspx.cc/ShowDetail.aspx?id=8ADE535F-AD40-4DE3-A962-A64B4FAF12C4
shanminmin 2005-05-20
  • 打赏
  • 举报
回复
你使用sqlDataAdapter呀

111,097

社区成员

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

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

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