none
DateGridView编辑、添加、删除功能 RRS feed

  • 问题

  • 请问有人能指导我如何在DataGridView控件上编辑、添加、删除数据,并更新后台数据库吗?
    如果有的话请不吝赐教,谢谢。

    2010年3月13日 2:27

答案

  • 你好!
         具体可以参考:
    http://blog.csdn.net/jjjjj102310253/archive/2009/02/02/3857834.aspx
         希望对你有帮助!
    周雪峰
    2010年3月13日 7:59
    版主

全部回复

  • 你好!
         这个控件默认情况下就支持用户进行编辑、添加、删除等操作了,你需要做的事绑定数据源,可以通过设置DataSource,DataMember属性来绑定数据,更新数据源可以使用SqlDataAdapter类来实现,另外,这个控件本身就可以让用户进行更新操作了!
        
    周雪峰
    2010年3月13日 4:33
    版主
  • 请问,能不能介绍个实例让我看看学习一下。谢谢。

    2010年3月13日 4:50
  • 你好!
         具体可以参考:
    http://blog.csdn.net/jjjjj102310253/archive/2009/02/02/3857834.aspx
         希望对你有帮助!
    周雪峰
    2010年3月13日 7:59
    版主
  • 非常感谢,这个实例代码对我帮助很大,再次感谢你的帮忙,谢谢。

    2010年3月14日 2:36
  • 不客气啊!
    周雪峰
    2010年3月14日 4:20
    版主
  • 我用另外一种方法实现了添加和修改的功能,您能帮我提提建议吗?谢谢了。
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using WindowsFormsApplication.ClassInfo;

    namespace WindowsFormsApplication
    {
        public partial class Form1 : Form
        {
            Sqlstring Sqlstr = new Sqlstring();
            private DataTable DT = new DataTable();
            private SqlDataAdapter SDA = new SqlDataAdapter();

            private DataSet Dst = new DataSet();

            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                //SqlCommand SCD = new SqlCommand("SELECT ID, UserID, UserName, UserPwd FROM dbo.tb_User", Sqlstr.GetCon());
                //SDA.SelectCommand = SCD;
                //SDA.Fill(DT);
                //dataGridView1.DataSource = DT;
                SelectBind();

            }

            private void SelectBind()
            {
                string Sql = "SELECT ID, UserID, UserName, UserPwd FROM dbo.tb_User";
               
                dataGridView1.DataSource = Sqlstr.GetDs(Sql).Tables[0];
                dataGridView1.Columns["ID"].Visible = false;
            }

            private void tb_User_Up()
            {
                if (dataGridView1.SelectedCells[0].Value.ToString() != "")
                {
                    SqlCommand cmd = new SqlCommand("tb_UserUp", Sqlstr.GetCon());
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add("@ID", SqlDbType.Int).Value = Convert.ToInt16(dataGridView1.SelectedCells[0].Value.ToString());
                    cmd.Parameters.Add("@UserID", SqlDbType.NVarChar, 50).Value = dataGridView1.SelectedCells[1].Value.ToString();
                    cmd.Parameters.Add("@UserName", SqlDbType.NVarChar, 50).Value = dataGridView1.SelectedCells[2].Value.ToString();
                    cmd.Parameters.Add("@UserPwd", SqlDbType.NVarChar, 50).Value = dataGridView1.SelectedCells[3].Value.ToString();
                    cmd.ExecuteNonQuery();
                }
                else
                {
                    SqlCommand cmd = new SqlCommand("tb_UserInsert", Sqlstr.GetCon());
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add("@UserID", SqlDbType.NVarChar, 50).Value = dataGridView1.SelectedCells[1].Value.ToString();
                    cmd.Parameters.Add("@UserName", SqlDbType.NVarChar, 50).Value = dataGridView1.SelectedCells[2].Value.ToString();
                    cmd.Parameters.Add("@UserPwd", SqlDbType.NVarChar, 50).Value = dataGridView1.SelectedCells[3].Value.ToString();
                    cmd.ExecuteNonQuery();
                }
            }

            private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                tb_User_Up();
                SelectBind();
            }

            private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                MessageBox.Show("aaaa");
            }
        }
    }

    2010年3月18日 2:02