c# winfrom中,怎样通过datagrideview实现删除,添加,修改数据库?

我设置了3个按钮,分别是“删除”添加‘’修改‘’,当选择datagrideview中的某行后,点击按钮,实现相应的操作!请把代码写的详细点,最好写个例子,如果成功实现的话,额外加20分!

private void button1_Click(object sender, EventArgs e)
{
string zhiri = maskedTextBox1.Text;
if (radioButton1.Checked == true)
{
sql = "select * from ******* where ******* like '%" + zhiri + "%'";
cmd = new SqlCommand(sql, Class1.me_conn);
sdr = cmd.ExecuteReader();
if (!sdr.Read())
{
MessageBox.Show("********");
maskedTextBox1.Clear();
maskedTextBox1.Focus();
}
//sdr.Close();
else
{
sdr.Close();
dataGridView1.Visible = true;
SqlDataAdapter sda = new SqlDataAdapter(sql, Class1.me_conn);
ds = new DataSet();
sda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
sdr.Close();
}
if (radioButton2.Checked == true)
{
sql = "select * from **** where **** like '%" + zhiri + "%'";
cmd = new SqlCommand(sql, Class1.me_conn);
sdr = cmd.ExecuteReader();
if (!sdr.Read())
{
MessageBox.Show("**********");
maskedTextBox1.Clear();
maskedTextBox1.Focus();
}
//sdr.Close();
else
{
sdr.Close();
dataGridView1.Visible = true;
SqlDataAdapter sda = new SqlDataAdapter(sql, Class1.me_conn);
ds = new DataSet();
sda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
sdr.Close();
}

if (radioButton3.Checked == true)
{
sql = "select * from ******* where ******* like '%" + zhiri + "%'";
cmd = new SqlCommand(sql,Class1.me_conn);
sdr = cmd.ExecuteReader();
if (!sdr.Read())
{
MessageBox.Show("*********");
maskedTextBox1.Clear();
maskedTextBox1.Focus();
}
//sdr.Close();
else
{
sdr.Close();
dataGridView1.Visible = true;
SqlDataAdapter sda = new SqlDataAdapter(sql, Class1.me_conn);
ds = new DataSet();
sda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
sdr.Close();
}

//sdr.Close();
else
{
sdr.Close();
dataGridView1.Visible = true;
SqlDataAdapter sda = new SqlDataAdapter(sql, Class1.me_conn);
ds = new DataSet();
sda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
sdr.Close();
}

这是一个单击事件下的带吗!还有其中****的地方为项目相应的词语!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-21
可以利用DataAdapter完成数据的更新(添删改)
SqlCommandBuilder cb=new SqlCommandBuilder (已有适配器对象);
适配器对象.Update(表格);
注:查询的结果必须是单表,查询时必须要查询主键(查询出来的主键不一定要显示出来,看你的需求),主键不能修改,当然这是个偷懒的方法;如果想知道其他方法可以继续追问!
第2个回答  2013-06-21
在dgv的列中添加一个隐藏列 绑定该条记录的id ,选中一行点击删除时 获取到这行的id列的值,然后传到数据库进行where id=你选择行的id隐藏列 就可以删除了,然后在重新绑定下dgv就可以了
相似回答