C#对DataGridView进行添加、修改、删除数据操作

发布时间:2009年06月01日      浏览次数:878 次
数据库用的是本地服务器(MySql):
设定全局变量:
MySqlConnection conn;
MySqlDataAdapter adapter;
MySqlTransaction trans;
1. // 数据库联接
private System.Data.DataTable dbconn(string strSql)
{
string strconn = "host=localhost;database=test;user id=root;password=";
conn = new MySqlConnection();
conn.ConnectionString = strconn;
conn.Open();
this.adapter = new MySqlDataAdapter(strSql, conn);
System.Data.DataTable dtSelect = new System.Data.DataTable();
int rnt=this.adapter.Fill(dtSelect);
conn.Close();
return dtSelect;

}
2. //设定DataGridView的样式
private void setDgStyle()
{
this.dgselect.Columns.Clear();
DataGridViewCheckBoxColumn colDel = new DataGridViewCheckBoxColumn();
colDel.DataPropertyName = "Del";
colDel.Name = "Del";
colDel.Selected = false;
colDel.FalseValue = "0";
colDel.TrueValue = "1";
colDel.Width = 40;
colDel.SortMode = DataGridViewColumnSortMode.NotSortable;
colDel.HeaderText = "删除";
colDel.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colDel.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
this.dgselect.Columns.Insert(0, colDel);
DataGridViewTextBoxColumn colID = new DataGridViewTextBoxColumn();
colID.DataPropertyName = "ProductsSpecID";
colID.Name = "ProductsSpecID";
colID.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colID.HeaderText = "产品规格ID";
colID.Width = 160;
this.dgselect.Columns.Insert(1, colID);
DataGridViewTextBoxColumn colNM = new DataGridViewTextBoxColumn();
colNM.DataPropertyName = "ProductsSpec";
colNM.Name = "ProductsSpec";
colNM.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colNM.HeaderText = "产品规格名称";
colNM.Width = 160;
this.dgselect.Columns.Insert(2, colNM);
DataGridViewTextBoxColumn colUnit = new DataGridViewTextBoxColumn();
colUnit.DataPropertyName = "ProductsSpecUnit";
colUnit.Name = "ProductsSpecUnit";
colUnit.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colUnit.HeaderText = "产品规格单位";
colUnit.Width = 180;
this.dgselect.Columns.Insert(3, colUnit);
DataGridViewTextBoxColumn colPID = new DataGridViewTextBoxColumn();
colPID.DataPropertyName = "ProductsID";
colPID.Name = "ProductsID";
colPID.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colPID.HeaderText = "产品ID";
colPID.Width = 140;
this.dgselect.Columns.Insert(4, colPID);
DataGridViewButtonColumn colButton = new DataGridViewButtonColumn();
colButton.DataPropertyName = "colSearch";
colButton.Name = "colSearch";
colButton.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colButton.HeaderText = "Button";
colButton.Width = 80;
this.dgselect.Columns.Insert(5, colButton);
this.dgselect.RowHeadersWidth = 15;
this.dgselect.ColumnHeadersDefaultCellStyle.Font=new System.Drawing.Font("宋体",14);

}
3. //修改数据,并将数据提交到数据库
private Boolean dbUpdate()
{
string strSql = "select ProductsSpecID,ProductsSpec,ProductsSpecUnit,ProductsID from tbl_product_detail_master";
System.Data.DataTable dtUpdate = new System.Data.DataTable();
dtUpdate = this.dbconn(strSql);
dtUpdate.Rows.Clear();
System.Data.DataTable dtShow = new System.Data.DataTable();
//dtShow = (DataTable)this.bindSource.DataSource;
dtShow = (System.Data.DataTable)this.dgselect.DataSource;
int p1 = dtShow.Rows.Count;
// try
// {
for (int i = 0; i < dtShow.Rows.Count; i++)
{
DataRowState rowState=new DataRowState();
rowState=dtShow.Rows[i].RowState;
if (rowState==DataRowState.Added || rowState==DataRowState.Detached || rowState==DataRowState.Modified)
{
if (this.dgselect["Del", i].Value.ToString() == "1")
{
dtShow.Rows[i].Delete();
}
}
}

for (int i = 0; i < dtShow.Rows.Count; i++)
{
dtUpdate.ImportRow(dtShow.Rows[i]);
}
int num = dtUpdate.Rows.Count;
try
{
this.conn.Open();

trans = this.conn.BeginTransaction();
MySqlCommandBuilder CommandBuiler;
CommandBuiler = new MySqlCommandBuilder(this.adapter);
this.adapter.Update(dtUpdate);
trans.Commit();
this.conn.Close();
}
catch ( Exception ex)
{
MessageBox.Show(ex.Message.ToString());
trans.Rollback();
return false;
}
dtUpdate.AcceptChanges();
return true;
}
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!