直接在DataGridView控件中修改数据

创建一个Windows应用程序,向窗体中添加一个DataGridView控件和两个button控件。DataGridView控件用于显示、修改数据,两个button分别用于加载数据和将修改后的数据更新到数据库中

代码如下

using System;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Test03
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        SqlConnection conn;
        SqlDataAdapter adapter;
        int intindex = 0;
        private void button1_Click(object sender, EventArgs e)
        {
            conn = new SqlConnection("server=MRC-8CF94303A82\\MRNET;database=db_16;uid=sa;pwd=111");
            SqlDataAdapter sda = new SqlDataAdapter("select * from tb_emp",conn);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
            dataGridView1.RowHeadersVisible = false;
            for (int i = 0; i < dataGridView1.ColumnCount;i++ )
            {
                dataGridView1.Columns[i].Width = 84;
            }
            button1.Enabled = false;
            dataGridView1.Columns[0].ReadOnly = true;
        }
        private DataTable dbconn(string strSql)
        {
            if (conn.State == ConnectionState.Open)
                conn.Close();
            this.adapter = new SqlDataAdapter(strSql, conn);
            DataTable dtSelect = new DataTable();
            int rnt = this.adapter.Fill(dtSelect);
            return dtSelect;
        }
        private void button2_Click(object sender, EventArgs e)
        {
            if (dbUpdate())
            {
                MessageBox.Show("修改成功!");
            }
        }
        private Boolean dbUpdate()
        {
            string strSql = "select * from tb_emp";
            DataTable dtUpdate = new DataTable();
            dtUpdate = this.dbconn(strSql);
            DataTable dtShow = new DataTable();
            dtShow = (DataTable)this.dataGridView1.DataSource;
            dtUpdate.ImportRow(dtShow.Rows[intindex]);
            SqlCommandBuilder CommandBuiler;
            CommandBuiler = new SqlCommandBuilder(this.adapter);
            this.adapter.Update(dtUpdate);
            dtUpdate.AcceptChanges();
            return true;
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            intindex = e.RowIndex;
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

运行结果
直接在DataGridView控件中修改数据_第1张图片
单击加载数据,会出现与数据库连接的表格

你可能感兴趣的:(C#软件开发)