以Oracle为例:
OracleDataAdapter mOracleAdapter = null;
DataTable mCurrentEditOracleDT = null;
//连接数据库
OracleConnection conn = new OracleConnection(strConn);
//绑定数据库,tableName 为表名
string sql = "select * from tableName ";
OracleCommand myCommand = new OracleCommand(sql, conn );
mOracleAdapter = new OracleDataAdapter();
mOracleAdapter.SelectCommand = myCommand;
mCurrentEditOracleDT = new DataTable();
mOracleAdapter.Fill(mCurrentEditOracleDT);
mCurrentEditOracleDT.TableName = tableName ;
dataGridView1.DataSource = mCurrentEditOracleDT;
//将dataGridView1的ReadOnly属性设为False,即可在dataGridView1中修改数据
//更新数据源
try
{
OracleCommandBuilder myCommandBuilder = new OracleCommandBuilder(mOracleAdapter);
mOracleAdapter.Update(mCurrentEditOracleDT);
}
catch(Exception ee)
{
MessageBox.Show(ee.Message);
return;
}
MessageBox.Show("更新成功!");
补充:要更新的数据库中的表必须包含主键!不然上述方法回报错:
“对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成”。