C# DataGridView 添加、修改、删除数据实现
本帖最后由 wyz365889 于 2012-10-19 10:34:36 编辑 现在遇到的问题是怎么添加、删除一行数据到DatagridView显示并同步更新到数据库。
代码如下:
public partial class Form_User : Form
{
private DataOpt dataOpt;
private SqlCommand sqlCmd;
private SqlDataAdapter sqlDA;
private DataSet ds;
private DataTable dt;
public Form_User()
{
InitializeComponent();
dataOpt = new DataOpt();
dataOpt.SQLConn();
string strSql = "select * from T_User";
sqlCmd = new SqlCommand(strSql, dataOpt.conn);
sqlDA = new SqlDataAdapter(sqlCmd);
ds = new DataSet();
sqlDA.Fill(ds,"T_User");
dt = ds.Tables["T_User"];
this.dataGridView_user.DataSource = ds;
this.dataGridView_user.DataMember = "T_User";
this.dataGridView_user.AllowUserToAddRows = false;
this.dataGridView_user.EditMode = DataGridViewEditMode.EditProgrammatically;
this.dataGridView_user.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
this.dataGridView_user.Columns[1].Visible = false;
//this.dataGridView_user.ColumnHeadersVisible = false;
this.dataGridView_user.RowHeadersVisible = false;
this.dataGridView_user.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
this.comboBox1_Group.Items.Add("Administrators");
this.comboBox1_Group.Items.Add("Guests");
this.comboBox1_Group.Items.Add("Teachers");
this.comboBox1_Group.SelectedIndex = 0;
}
private void button_Add_Click(object sender, EventArgs e)//添加一行数据
{
string strUserID = textBox1_UserID.Text;
string strUserPWD = textBox3_PWD.Text;
string strGroupID = comboBox1_Group.Text;
string strRemark = textBox2_remark.Text;
//string[] strRow ={ strUserID, "", strUserPWD, strGroupID, strRemark };
//dataGridView_user.Rows.Add(new object[] { strUserID, "22", strUserPWD, strGroupID, strRemark });
DataRow dRow = dt.NewRow();
dt.Rows.Add(dRow);
}
private void button_del_Click(object sender, EventArgs e)//删除一行数据
{
//int RowNumber;
//if (null == dataGridView_user.CurrentCell)
//{
// return;
//}
//int iRow = dataGridView_user.CurrentCell.RowIndex;
//dataGridView_user.Rows.RemoveAt(iRow);
dataGridView_user.DataSource = ds.Tables[0];
dt = ds.Tables["T_User"];
int iRowNow = dataGridView_user.CurrentCell.RowIndex;
DataRow dRow = dt.Rows[iRowNow];
dRow.Delete();
sqlDA.Update(ds);
}
}
[解决办法]
两种方案,第一种:每增改删一行数据记录后,直接操作数据库物理数据表,再进行重新绑定
第二种,每增改删一行数据记录时,更新内存表,最后一次保存更改到物理数据表。
[解决办法]