把查询的结果显示在datagridview并在datagridview修改、删除保存到数据库
首先,在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);
}
}
=========================================================================================================
请大侠指点!!!谢谢。 --------------------编程问答-------------------- this.accountTableAdapter.Update(this.aMDMSDataSet1.account);
我不懂这个是啥,但是从你代码看,这东西是不是如果有了变化,需要save()一下啊?然后才是update() --------------------编程问答-------------------- --------------------编程问答-------------------- 更新
DataSet ds = new DataSet();
SqlDataAdapter sda;
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.Update(ds);
this.dataGridView1.DataSource = ds.Tables[0];
--------------------编程问答--------------------
直接对绑定好的DataGridView可以直接用this.accountTableAdapter.Update(this.aMDMSDataSet1.account);来进行更新,但是如果先查询后更新就不行了。 --------------------编程问答--------------------
是不是前面应该加上连接数据库并查询的代码? --------------------编程问答-------------------- 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进程能够结束但是拷贝的时候总说占用进程,怎么回事?
补充:.NET技术 , C#