因为工作需要,需要将数据库内两个不同用户下的表内容进行对拷。
try
{
// source: 源数据
JData db2 = new JData(str_source);
DataSet ds_source = db2.GetDataSetBySql("select * from " + strTable);
// target: 目标数据
JData db1 = new JData(str_target);
DataSet ds_target = db1.GetDataSetBySql("select * from " + strTable);
DataRow addRow = ds_target.Tables[0].NewRow(); // 新建一个 datarow
// 将datarow 加入到 到目标数据集中
for (int i = 0; i < ds_source.Tables[0].Rows.Count; i++) // 某一行
{
for (int j = 0; j < ds_source.Tables[0].Columns.Count; j++) //某一列
{
addRow[j] = ds_source.Tables[0].Rows[i][j];
}
ds_target.Tables[0].Rows.Add(addRow);
addRow = ds_target.Tables[0].NewRow();
}
OracleConnection conn;
conn = new OracleConnection(str_target);
conn.Open();
System.Data.OracleClient.OracleCommand cmd = new OracleCommand();
cmd.CommandText = "select * from " + strTable;
cmd.Connection = conn;
System.Data.OracleClient.OracleDataAdapter adp= new OracleDataAdapter();
adp.SelectCommand = cmd;
System.Data.OracleClient.OracleCommandBuilder cmdBuilder= new OracleCommandBuilder(adp);
adp.Update(ds_target);
conn.Dispose();
MessageBox.Show("成功复制一个表!");
}
catch
{
MessageBox.Show("数据库操作失败");
}