Winform开发之DataGridView的增删改

DataGridView是一个非常强大的控件,用法很多。这里介绍一个简单的增删改例子。

贴效果图

右侧输入学生信息点击新增,将数据增加到数据库,并且加载到datagridview中,点击选择某条数据修改,将选择的数据加载到右侧的编辑框内,修改后点击修改即可,也可直接删除。

贴代码

 public partial class Form1 : Form
    {

        private static string strConn = "Data Source=210.26.111.80;Initial Catalog=Test;User ID=sa;Password=wlzx_7975361";
        private SqlConnection conn = new SqlConnection(strConn);
        private string sqlId = "";
        private SqlCommand cmd = null;
        private SqlDataAdapter da = null;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //SqlDataReader studentlist = cmd.ExecuteReader();
            //bindingSource1.DataSource = studentlist;
            //dataGridView1.DataSource = bindingSource1;
            BindData();
        }
        private void BindData()
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            sqlId = "select * from [Student] ";
            cmd = new SqlCommand(sqlId, conn);
            da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds, "student");
            dataGridView1.AutoGenerateColumns = false;//此行指定不需要自动绑定数据列,数据列在dataGridView的属性items集合里指定,必须放在绑定数据之前哦,放到后面是没用的
            //dataGridView1.DataSource=ds.Tables["Student"];此处直接用DataTalbe绑定,与下面两行代码的效果是一样的
            dataGridView1.DataSource = ds;//使用Dataset,单必须指定DataMember,因为DataSet是DataTable的集合,而datagridview只能绑定一个datatable
            dataGridView1.DataMember = "Student";
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                string username = textBox1.Text;
                string homeaddress = textBox2.Text;
                string info = textBox3.Text;
                conn.Open();
                //准备一个SQL语句,其中以@开头的在这里只表示一种变量,一种参数。
                sqlId = "Insert into Student(StudenTnAME, HomeAddress, Content)values(@StudenTnAME,@HomeAddress,@Content)";
                //创建一个参数数组,并且用花括号里面的值来初始化数组
                SqlParameter[] parameters = new[]
                 {
                    //这里也有个初始化的过程,将name复制给@name,下面的是一样的
                    new SqlParameter("@StudenTnAME",username),//而小括号右边的name就是程序一开始我们得到的用户输入的值
                    new SqlParameter("@HomeAddress",homeaddress),
                    new SqlParameter("@Content",info)
                 };
                cmd=conn.CreateCommand();
                //利用对象的属性,把sql字符串放进命令(设置要对数据源执行的SQL语句)
                cmd.CommandText = sqlId;
                //先利用对象的Parameters属性获取参数集,再将参数集的值附加到后面
                cmd.Parameters.AddRange(parameters);
                int x=cmd.ExecuteNonQuery();
                if (x ==1)
                {
                    //如果添加成功,那么给用户提示一下
                    MessageBox.Show("添加成功");
                    textBox1.Text = "";
                    textBox2.Text = "";
                    textBox3.Text = "";
                } 

            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                conn.Close();
            }
        }

        //点击选中行,将内容放到编辑框内
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            textBox1.Text = dataGridView1.Rows[e.RowIndex].Cells["studentname"].Value.ToString();
            textBox2.Text = dataGridView1.Rows[e.RowIndex].Cells["homeaddress"].Value.ToString();
            textBox3.Text = dataGridView1.Rows[e.RowIndex].Cells["info"].Value.ToString();
        }

        //对修改该内容进行保存
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                conn.Open();
                //准备一个SQL语句,拼接一个sql串,这里有别于ADD里面传参
                sqlId = "update Student set StudenTnAME=‘" + textBox1.Text + "‘,HomeAddress=‘" + textBox2.Text + "‘,Content=‘" + textBox3.Text + "‘ where ID=" + Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value.ToString());

                cmd = conn.CreateCommand();
                //利用对象的属性,把sql字符串放进命令(设置要对数据源执行的SQL语句)
                cmd.CommandText = sqlId;

                int x = cmd.ExecuteNonQuery();
                if (x == 1)
                {
                    //如果添加成功,那么给用户提示一下
                    MessageBox.Show("修改成功");
                    textBox1.Text = "";
                    textBox2.Text = "";
                    textBox3.Text = "";
                    BindData();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                conn.Close();
            }
        }
        //删除选中行
        private void btnDel_Click(object sender, EventArgs e)
        {
            try
            {
                conn.Open();
                //准备一个SQL语句,拼接一个sql串,这里有别于ADD里面传参
                sqlId = " delete from Student where ID=" +Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value.ToString());

                cmd = conn.CreateCommand();
                //利用对象的属性,把sql字符串放进命令(设置要对数据源执行的SQL语句)
                cmd.CommandText = sqlId;

                int x = cmd.ExecuteNonQuery();
                if (x == 1)
                {
                    //如果添加成功,那么给用户提示一下
                    MessageBox.Show("删除成功");
                    textBox1.Text = "";
                    textBox2.Text = "";
                    textBox3.Text = "";
                    BindData();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                conn.Close();
            }
        }       

    }

就是这么简单,但是我们可以看到数据的操作是比较繁琐的,后面的博文会封装一个数据库操作类,进行操作。

时间: 2024-11-09 16:00:00

Winform开发之DataGridView的增删改的相关文章

Winform开发之DataGridView事件和属性

DataDridView的事件和属性非常多,一一介绍还是不现实,这里借鉴一下园友和MSDN上的介绍吧 1.C#中 DataGridView 属性说明(转载) 2.MSDN上DataGridView事件 其实很多属性和事件在实际的开发中很难运用到,在实际的需求上找到相应的事件和属性使用即可,这里不再赘述

使用DataGridView进行增删改查,并同步到数据库

DataGridView控件具有极高的可配置性和可扩展性.它提供有大量的属性.方法和事件,能够用来对该控件的外观和行为进行自己定义.以下通过一个小样例来展示DataGridView进行增删改查,并同步到数据库的功能. 窗口展示: 用户需求: 1.当窗口显示时,将数据库中用户表中的数据显示出来. 2.选中一行,运行删除操作,同一时候在数据库中对应数据被删除. 3.双击某个数据,进行编辑,或者在空白行加入新的数据,然后点击更新,数据库随之更新. 代码展示: Public Class Form1'代码

DataGridView 上增删改同步Access数据库

准备工作: 用Visual Studio新建一个WinForm项目,在Form1中放上一个datagridview控件,两个按钮控件. 在项目所在文件夹目录bin/debug/ 下新建一个Access数据库,名字Database. 这里要注意,数据库后缀名最好是.mdb (access 2002-2003数据库). 如果用.accdb(access2007)格式,就需要下载并安装Access 2007 runtime, 因为07版使用的Provider Engine与原来不同,而且Office2

Winform开发之SqlCommand常用属性和方法

SqlCommand类表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程,有若干个属性和若干个方法,具体的各类方法使用可以从msdn上找到. 这里介绍几个常用东东 一.属性 CommandText 获取或设置要对数据源执行的 Transact-SQL 语句.表名或存储过程. CommandTimeout 获取或设置在终止执行命令的尝试并生成错误之前的等待时间.  CommandType 获取或设置一个值,该值指示释 CommandText 是SQL语句,存

对datagridview进行增删改(B)

1 create DATABASE stu 2 ON 3 ( 4 name='stu.mdf', 5 filename='F:\胡浴东\数据库\stu数据库\stu.mdf', 6 size=5, 7 filegrowth=10 8 ) 9 log ON 10 ( 11 name='stu_log.ldf', 12 filename='F:\胡浴东\数据库\stu数据库\stu_log.ldf', 13 size=5, 14 filegrowth=10 15 ) 16 go 17 18 USE

SqlDataAdapter 对datagridview进行增删改(A)

这种方法主要是双击datagridview单元格,直接进行添加,修改,删除,在实际开发中并不太常用,另一种方法下一次在具体陈述. 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.

winform开发之UI系列

1.如何构造一个漂亮的主窗体 主要讲述如何对一个新建窗体的美化过程,涉及到经常需要用到的几个属性我会着重强调它的用法,并不断更新它,因为楼主也正在探索中.... 步骤如下: vs新建一个winform项目,默认有一个form1窗体,我举得例子中更名为BaseCustomeFrm,引用一个叫Cskin.DLL的文件,让form1继承一个叫CCSkinMain的基类. 截图如下: 代码代码如下: using CCWin; using System; using System.Collections.

winform窗体(六)——DataGridView控件及通过此控件中实现增删改查

DataGridView:显示数据表,通过此控件中可以实现连接数据库,实现数据的增删改查 一.后台数据绑定:    List<xxx> list = new List<xxx>();      dataGridView1.DataSource = list;      //设置不自动生成列,此属性在属性面板中没有      dataGridView1.AutoGenerateColumns = false;      //取消加载默认选中第一行      dataGridView1

WinForm DataGridView增删改查

连接数据库对表进行增删改查 1.绑定数据源 //做一个变量控制页面刷新 public static int bs = 0; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { JianSanDA da = new JianSanDA(); //绑定数据源 dataGridView1.DataSource = da.Select(); //设置不自动生成列 d