本人是名学生,不太懂代码上的问题,所以请XD们可以详解
datagridview  已经连上SQL2005中的其中一个数据库(自己建的)我已经设置了 datagridview 启动编辑,启动添加,
我想直接按button1 为添加数据  button2为删除数据  并且与数据同步
谢谢你们了
这是我的毕业设计

解决方案 »

  1.   

    不要这样添加按钮    启用datagridview自带的添加删除按钮就可以了 
      

  2.   

    可以通过获取选中datagridview的行的主键来进行数据的删除添加数据直接进行数据库插入操作就可以
      

  3.   

    删除可以直接DEL。adaper.update()就可以了。
      

  4.   

    (1)删除数据  直接删除 dateTable 中的当前行,然后再删除数据库中相同自增ID号的记录
    (2)新增数据  先往数据库中增加数据,并返回自增ID,填充到当前行.
      

  5.   

    this.dataGridView1.Rows.Add("a","b");
    this.dataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedRows[0].Index);DataSet ds = new DataSet();
            SqlDataAdapter sda;
            private void btn1_Click(object sender, EventArgs e)
            {
                ds.Tables.Clear();
                sda = new SqlDataAdapter("select * from Tb", conn);
                sda.Fill(ds);
                this.dataGridView1.DataSource = ds.Tables[0];
            }        private void btn2_Click(object sender, EventArgs e)
            {
                SqlCommandBuilder scb = new SqlCommandBuilder(sda);
                sda.Update(ds);
                this.dataGridView1.DataSource = ds.Tables[0];
            }
    http://topic.csdn.net/u/20090130/20/1c6708ce-db4e-495a-a21b-101fecb9596d.html
      

  6.   

    你的毕业设计太简单了吧,呵呵首先,你要用SqlConnection连接到后台数据库,以一个教务管理数据库为例:
    SqlConnection sqlConn;
                SqlDataAdapter sqlDa;
                DataSet sqlDs;
                sqlConn = new SqlConnection("Data Source=.;Initial Catalog=jwinfo;Integrated Security=True;");然后,你要读取出某个表的记录绑定到DataGridView中,下面是绑定显示学生信息表记录:
                sqlDa = new SqlDataAdapter("SELECT * FROM 学生信息", sqlConn);            sqlDs = new DataSet();
                sqlDa.Fill(sqlDs, "学生信息");            dataGridView1.DataSource = sqlDs.Tables["学生信息"];这样你就可以直接在DataGridView中编辑数据了,编辑后,点击一个按钮保存:
            //更新
            private void button1_Click(object sender, EventArgs e)
            {
                if (sqlDs.HasChanges())
                {
                    try
                    {
                        sqlDa.Update(sqlDs);
                        sqlDs.AcceptChanges();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "更新失败!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
      

  7.   

            private void button2_Click(object sender, EventArgs e)
            {
                //删除首先要定位到当前选中的记录
                int delRowIndex = dataGridView1.CurrentRow.Index;
                this.dataGridView1.Rows.RemoveAt(delRowIndex);            //然后调用保存按钮保存删除操作
                button1.PerformClick();
            }
      

  8.   

    贴出一个完整的吧,呵呵:using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;namespace DataGridViewDemo
    {
        public partial class DataGridViewCustomPaint : Form
        {
            SqlConnection sqlConn;
            SqlDataAdapter sqlDa;
            DataSet sqlDs;        public DataGridViewCustomPaint()
            {
                InitializeComponent();
            }        private void DataGridViewCustomPaint_Load(object sender, EventArgs e)
            {            sqlConn = new SqlConnection("Data Source=.;Initial Catalog=jwinfo;Integrated Security=True;");
                sqlDa = new SqlDataAdapter("SELECT * FROM 学生信息", sqlConn);            sqlDs = new DataSet();
                sqlDa.Fill(sqlDs, "学生信息");
                dataGridView1.DataSource = sqlDs.Tables["学生信息"];            //然后用SqlCommandBuilder自动为SqlDataAdapter生成Insert、Update、Delete命令 
                SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(sqlDa);
            }        //更新
            private void button1_Click(object sender, EventArgs e)
            {
                if (sqlDs.HasChanges())
                {
                    try
                    {
                        sqlDa.Update(sqlDs.Tables["学生信息"]);
                        sqlDs.Tables["学生信息"].AcceptChanges();
                        MessageBox.Show("更新成功!", "操作结果",MessageBoxButtons.OK, MessageBoxIcon.Information );
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "更新失败!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }        //删除
            private void button2_Click(object sender, EventArgs e)
            {
                //删除首先要定位到当前选中的记录
                int delRowIndex = dataGridView1.CurrentRow.Index;
                if (delRowIndex != -1)
                    this.dataGridView1.Rows.RemoveAt(delRowIndex);            //然后调用保存按钮保存删除操作
                button1.PerformClick();
            }
        }
    }
      

  9.   

    computerfox 总是很详细 定
      

  10.   

    感谢“computerfox”的CODE,我解决问题了!
      

  11.   

    连接sqlconnection,执行sqlcommand,更新insert,修改update,查询select,删除delete,绑定databind
    数据集dataset,填充数据集dt.fill(ds)
      

  12.   

    View怎么能删除?大家有没有用过呀?
      

  13.   

    computerfox 果然讲解详细,彰显大家风范,我辈之楷模
      

  14.   

    毕业设计
    我学C#的第一个上机题目
    加油啊!LZ
      

  15.   

    学习~~不过我也好奇为什么不用gridview自带的添加删除啊?
      

  16.   

    看了那个回复,照着做了,N久,什么找不到表啊,什么动态SQL啊,,啥错误都来了,,最后找到一个办法,给表设置主键,,解决了,,
      

  17.   


    非常感谢8楼对我们这些小白的帮助,但是我发现有个错误sqlDa.Update(sqlDs.Tables["学生信息"]);
    sqlDs.Tables["学生信息"].AcceptChanges();两句应该互换位置,因为这样会引发违反并发性错误。比如在添加一行,再立刻删除这一行时,如果先update,就会发现内存里的dataset的这一行没有更新
      

  18.   

    对不起,是我错了,是由于我使用的access数据库主键自增的原因,8楼写的没错,非常抱歉!