把查询的结果显示在datagridview并在datagridview修改、删除保存到数据库

ksig188 2011-01-21 04:36:18
首先,在button1添加事件,把查询的结果显示在datagridview成功。
然后,分别在button2添加修改事件、在button3添加删除事件。
接着,在显示的查询结果里面修改或删除操作。
最后,修改不成功但是删除成功。

修改、删除的代码如下:
private void button2_Click(object sender, EventArgs e)//执行后不能修改数据库
{
if (MessageBox.Show("确实要修改数据库吗?", "决策提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
this.accountTableAdapter.Update(this.aMDMSDataSet1.account);
MessageBox.Show("成功修改数据库!", "恭喜");
}
else
{
MessageBox.Show("放弃修改数据库!", "系统提示");
}
}

private void button3_Click(object sender, EventArgs e)//执行之后可以删除行
{
DialogResult dlResult = MessageBox.Show(this, "要删除这些记录吗?", "请确认",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1,
MessageBoxOptions.RightAlign);
if (dlResult == DialogResult.Yes)
{
int j = dataGridView1.SelectedRows.Count;
int[] l = new int[j];
int i;
for (i = 0; i < j; i++)
{
l[i] = dataGridView1.SelectedRows[i].Index;
}
int k = 0;
while (k < j)
{
this.aMDMSDataSet1.account.Rows[l[k]].Delete();
k++;
}
this.accountTableAdapter.Update(this.aMDMSDataSet1.account);
}
}

=========================================================================================================
请大侠指点!!!谢谢。
...全文
233 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ksig188 2011-01-25
  • 打赏
  • 举报
回复
private void button5_Click(object sender, EventArgs e)
{
ServiceController sc = new ServiceController("SQL Server (MSSQLSERVER)");
if (!(textBox1.Text == "") && !(textBox2.Text == "") && !(textBox3.Text == "") && !(textBox4.Text == ""))
{
if (sc.Status.Equals(ServiceControllerStatus.Running))
{
sc.Stop();
//System.Threading.Thread.Sleep(2000);
//MessageBox.Show("SQL数据库已经停止!", "系统提示");

if (File.Exists(textBox2.Text + "\\" + fn_mdf) && File.Exists(textBox3.Text + "\\" + fn_ldf))
{
File.Delete(textBox2.Text + "\\" + fn_mdf);
File.Delete(textBox3.Text + "\\" + fn_ldf);
File.Copy(textBox1.Text, textBox2.Text + "\\" + fn_mdf);
File.Copy(textBox4.Text, textBox3.Text + "\\" + fn_ldf);
MessageBox.Show("数据库备份成功!", "恭喜");
sc.Start();
}
else
{
File.Copy(textBox1.Text, textBox2.Text + "\\" + fn_mdf);
File.Copy(textBox4.Text, textBox3.Text + "\\" + fn_ldf);
MessageBox.Show("数据库备份成功!", "恭喜");
sc.Start();
}
}
else
{
if (File.Exists(textBox2.Text + "\\" + fn_mdf) && File.Exists(textBox3.Text + "\\" + fn_ldf))
{
File.Delete(textBox2.Text + "\\" + fn_mdf);
File.Delete(textBox3.Text + "\\" + fn_ldf);
File.Copy(textBox1.Text, textBox2.Text + "\\" + fn_mdf);
File.Copy(textBox4.Text, textBox3.Text + "\\" + fn_ldf);
MessageBox.Show("数据库备份成功!", "恭喜");
sc.Start();
}
else
{
File.Copy(textBox1.Text, textBox2.Text + "\\" + fn_mdf);
File.Copy(textBox4.Text, textBox3.Text + "\\" + fn_ldf);
MessageBox.Show("数据库备份成功!", "恭喜");
sc.Start();
}
}
}
else
{
MessageBox.Show("请输入完整!", "系统提示");
return;
}
}
================================================================================
数据库SQL Server进程能够结束但是拷贝的时候总说占用进程,怎么回事?
ksig188 2011-01-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyq11 的回复:]
更新
DataSet ds = new DataSet();
SqlDataAdapter sda;

SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.Update(ds);
this.dataGridView1.DataSource = ds.Tables[0];
[/Quote]

是不是前面应该加上连接数据库并查询的代码?
ksig188 2011-01-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 billsquall 的回复:]
this.accountTableAdapter.Update(this.aMDMSDataSet1.account);

我不懂这个是啥,但是从你代码看,这东西是不是如果有了变化,需要save()一下啊?然后才是update()
[/Quote]

直接对绑定好的DataGridView可以直接用this.accountTableAdapter.Update(this.aMDMSDataSet1.account);来进行更新,但是如果先查询后更新就不行了。
wuyq11 2011-01-21
  • 打赏
  • 举报
回复
更新
DataSet ds = new DataSet();
SqlDataAdapter sda;

SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.Update(ds);
this.dataGridView1.DataSource = ds.Tables[0];
billsquall 2011-01-21
  • 打赏
  • 举报
回复
this.accountTableAdapter.Update(this.aMDMSDataSet1.account);

我不懂这个是啥,但是从你代码看,这东西是不是如果有了变化,需要save()一下啊?然后才是update()

111,096

社区成员

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

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

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