我写了一个DB_Update的代码如下public DataTable DB_Update(string strSql,object[] strValue)
{
DataTable dt = new DataTable();
dt = DB_Find(strSql);
for (int i = 0; i < dt.Columns.Count; i++)
{
if (strValue[i] == null)break;
dt.Rows[0][dt.Columns[i].ColumnName] = strValue[i];
}
OleDbDataAdapter Sda = new OleDbDataAdapter(strSql, Properties.Settings.Default.FamilyDBConnectionString);
OleDbCommandBuilder cmbUpdate = new OleDbCommandBuilder(Sda);
Sda.Update(dt);
dt.AcceptChanges();
return dt;
}
然后点击"更新"按钮后传递相关值如下 private void btUpdate_Click(object sender, EventArgs e)
{
object[] txtUpdate = { null, int.Parse(fileID.Text), reciveDate.Text.Trim(), null, aid1.Text.Trim(), reviceCorp.Text.Trim(), filesname.Text.Trim(), count1.Text.Trim(), reviceList.Text.Trim(), typeList.Text.Trim(), null, others.Text.Trim(), null };
dbconn dt = new dbconn();
dt.DB_Update("select * from CONTACTS where id = " + filesGridView.CurrentRow.Cells["PGkey"].Value, txtUpdate);
}运行的时候没有报错,但是数据也没有数据库里面去,我看过txtUpdate的值都已经传递过去了
顺便一提,我用的是Access的数据库
{
DataTable dt = new DataTable();
dt = DB_Find(strSql);
for (int i = 0; i < dt.Columns.Count; i++)
{
if (strValue[i] == null)break;
dt.Rows[0][dt.Columns[i].ColumnName] = strValue[i];
}
OleDbDataAdapter Sda = new OleDbDataAdapter(strSql, Properties.Settings.Default.FamilyDBConnectionString);
OleDbCommandBuilder cmbUpdate = new OleDbCommandBuilder(Sda);
Sda.Update(dt);
dt.AcceptChanges();
return dt;
}
然后点击"更新"按钮后传递相关值如下 private void btUpdate_Click(object sender, EventArgs e)
{
object[] txtUpdate = { null, int.Parse(fileID.Text), reciveDate.Text.Trim(), null, aid1.Text.Trim(), reviceCorp.Text.Trim(), filesname.Text.Trim(), count1.Text.Trim(), reviceList.Text.Trim(), typeList.Text.Trim(), null, others.Text.Trim(), null };
dbconn dt = new dbconn();
dt.DB_Update("select * from CONTACTS where id = " + filesGridView.CurrentRow.Cells["PGkey"].Value, txtUpdate);
}运行的时候没有报错,但是数据也没有数据库里面去,我看过txtUpdate的值都已经传递过去了
顺便一提,我用的是Access的数据库
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货