当前位置:编程学习 > C#/ASP.NET >>

把查询的结果显示在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];
--------------------编程问答--------------------
引用 1 楼 billsquall 的回复:
this.accountTableAdapter.Update(this.aMDMSDataSet1.account);

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


直接对绑定好的DataGridView可以直接用this.accountTableAdapter.Update(this.aMDMSDataSet1.account);来进行更新,但是如果先查询后更新就不行了。 --------------------编程问答--------------------
引用 3 楼 wuyq11 的回复:
更新
DataSet ds = new DataSet();
SqlDataAdapter sda;

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


是不是前面应该加上连接数据库并查询的代码? --------------------编程问答-------------------- 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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,