首先,在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);
            }
        }=========================================================================================================
请大侠指点!!!谢谢。

解决方案 »

  1.   

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

  2.   

    更新
    DataSet ds = new DataSet();
    SqlDataAdapter sda;SqlCommandBuilder scb = new SqlCommandBuilder(sda);
    sda.Update(ds);
    this.dataGridView1.DataSource = ds.Tables[0];
      

  3.   


    直接对绑定好的DataGridView可以直接用this.accountTableAdapter.Update(this.aMDMSDataSet1.account);来进行更新,但是如果先查询后更新就不行了。
      

  4.   

    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进程能够结束但是拷贝的时候总说占用进程,怎么回事?