VSTO(C#):把對Excel表格的更改一鍵傳送到伺服器
阿新 • • 發佈:2018-12-28
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模式下,在事件上有這樣的顯示,就是成功同步了