比如我现在把数据库中的A表查询出来并显示到dategrid控件中,
现在我想直接从dategrid中直接修改数据库中的数据要怎么办??
我用的数据库是Sql2000
谢了各位!!
本人分少,请各位见谅!!多少也是点意思撒,呵呵...

解决方案 »

  1.   

    给你参考一下我的博客里的一篇文章
    http://www.cnblogs.com/spgoal/archive/2008/07/30/1256143.html
      

  2.   

    如果是用的数据集,可以在数据集的tableadapter中写SQL语句来进行修改
      

  3.   

    这和数据库访问方式有关吧
    ado
    ado.net?
      

  4.   

    DataGridView 是需要和 虚拟数据库捆绑起来的吧(DataSet) 你把DataGridView 只需看作是一个容器就好, 直接删除DataSet中的数据. 
    就可以删除DataGridView中的数据了. 你要是看不明白我给你写一段代码. 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 DateBookForm
    {
        public partial class Test : Form
        {
            public Test()
            {
                InitializeComponent();
            }        // 刷新次数
            private int LoadNum = 2;        //创建SqlConnection对象
            SqlConnection con = new SqlConnection("Server=.; DataBase = Test; uid = sa; pwd = sa");
            //创建DataSet
            DataSet ds = new DataSet();
            //引入SqlDataAdapter;
            SqlDataAdapter adapter;        
            /// <summary>
            /// 窗体加载时
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Test_Load(object sender, EventArgs e)
            {
                FillSet();        }        /// <summary>
            /// DataSet填充方法
            /// </summary>
            private void FillSet()
            {
                //在刷新次数是第一次的时候访问数据库并且添加到DataSet中
                if (LoadNum == 0)
                {
                    con.Open();                //使用SqlDataAdapter adapter
                    adapter = new SqlDataAdapter("select * from users",con);
                    adapter.Fill(ds);
                    adapter.Update(ds);
                    //给DataGirdView捆绑数据
                    dataGridView1.DataSource = ds.Tables[0];
                    //判断是否有数据
                    if (dataGridView1.Rows.Count >= 1)
                    {
                        MessageBox.Show("填充成功!");
                        
                    }
                    con.Close();            }
            }        /// <summary>
            /// 点击删除按钮
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    //选中的行是1的时候
                    if (dataGridView1.SelectedRows.Count == 1)
                    {
                        //删除数据
                        dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]);                    ///////////////////////////////////////
                        //////////////////////////////////////
                        //以下为附加代码,可用可不用, 作用是根据DataGirdView的现有数据,更新数据库.
                        SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
                        adapter.Update(ds);
                    }
                    else
                    {
                        MessageBox.Show("请从新选择!");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
    }完美实现你要的功能, 注意注释.我写的很详细了.
      

  5.   

    1、当用户进入dategrid编辑状态时,记录值。如string x.
    2、当用户离开dategrid编辑状态时,判断x与当前值是否相同,如不同,则通过SQL修改。
      

  6.   

    建议楼主参考一下这里,
    ADO.NET中的多数据表操作浅析
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
    透过vs.net数据窗体向导看Ado.net
    http://blog.csdn.net/zhzuo/archive/2005/01/03/238273.aspx