VSTO(C#):把对Excel表格的更改一键发送到服务器

VSTO(C#):把对Excel表格的更改一键同步到数据库

1.创建一个VSTO项目,创建一个表格,按F4能够访问到它的属性,这里把表格名称改为listObject1

在这里插入图片描述

2.编辑Sheet2的代码,引入System.Data.SqlClient命名空间,在表格Startup事件写下为表格填充数据源的代码

DataTable _dt = new DataTable();    //数据表
SqlDataAdapter _da;    //数据适配器

private void Sheet1_Startup(object sender, System.EventArgs e)
{
    string cnnStr = "Server=.; User=sa; Pwd=sa; Database=E_Market";
    SqlConnection cnn = new SqlConnection(cnnStr);
    string sqlStr = "select CommodityId as 编号, CommodityName as 商品名称, InPrice as 进价, OutPrice as	售价, Amount as 库存量 from newTable";  //连接字符串
    this._da = new SqlDataAdapter(sqlStr, cnn);
    SqlCommandBuilder cbd = new SqlCommandBuilder(_da);   //构建_da的UpdatdCommand, DeleteCommand, InSertCommand
    this._da.Fill(_dt);

    #region 填充表头
    for (int i = 0; i < _dt.Columns.Count; i++)
    {
        ((Excel.Range)this.Cells[1, i + 1]).Value = _dt.Columns[i].Caption;
    }
    #endregion

    this.listObject1.DataSource = _dt;   //把表格listObject1的数据源设置成数据表_dt
}

注意,为表格填充数据源并不会像DataGridView一样也填充表头,所以要手动填充,如上面一样用代码先把表头填好。
运行后效果:
在这里插入图片描述

3.下一步,在表格添加一个按钮

private void button1_Click(object sender, EventArgs e)
{
    this._da.Update(this._dt);   //把数据更改同步到数据库
}

启动程序,对数据表的更改都会同步到sql server
在这里插入图片描述

在Debug模式下,在事件上有这样的显示,就是成功同步了

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43154777/article/details/85317177