private void button3_Click(object sender, EventArgs e)
{
int Num = 5;
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=temp.mdb";
OleDbConnection myConn = new OleDbConnection(strCon);
            
myConn.Open();
OleDbDataAdapter daAuthors_test = new OleDbDataAdapter("Select * From test", myConn);
OleDbCommandBuilder builder_test = new OleDbCommandBuilder(daAuthors_test);
DataSet ds_test = new DataSet();
daAuthors_test.Fill(ds_test, "test");
myConn.Close();
DataTable tbl_test;
tbl_test = ds_test.Tables["test"];
DataRow cRow_test; myConn.Open(); 
OleDbDataAdapter daAuthors_testfile = new OleDbDataAdapter("Select * From testfile", myConn);
OleDbCommandBuilder builder_testfile = new OleDbCommandBuilder(daAuthors_testfile);
DataSet ds_testfile = new DataSet();
daAuthors_testfile.Fill(ds_testfile, "testfile");
myConn.Close();
DataTable tbl_testfile;
tbl_testfile = ds_testfile.Tables["testfile"];
DataRow cRow_testfile; int newID;
string sql; for (int i = 1; i <= Num; i++)
{
myConn.Open();
OleDbDataAdapter daAuthors_testtemp = new OleDbDataAdapter("Select * From testtemp" + i, myConn);
DataSet ds_testtemp = new DataSet();
daAuthors_testtemp.Fill(ds_testtemp, "testtemp" + i);
myConn.Close();
DataTable tbl_testtemp;
tbl_testtemp = ds_testtemp.Tables["testtemp" + i];
DataRow cRow_testtemp;
for (int k = 0; k <= tbl_testtemp.Rows.Count - 1; k++)
{
cRow_testtemp = tbl_testtemp.Rows[k]; cRow_test = tbl_test.NewRow();
cRow_test["title"] = cRow_testtemp["title"];
cRow_test["content"] = cRow_testtemp["content"];
tbl_test.Rows.Add(cRow_test);
myConn.Open();
daAuthors_test.Update(ds_test, "test");
myConn.Close(); myConn.Open();
sql = "select id from [test] order by id desc";
OleDbCommand cmd = new OleDbCommand(sql, myConn);
OleDbDataReader dr;
dr = cmd.ExecuteReader();
dr.Read();
newID = Convert.ToInt32(dr["id"].ToString());
dr.Close();
myConn.Close(); myConn.Open();
OleDbDataAdapter daAuthors_testfiletemp = new OleDbDataAdapter("Select * From testfiletemp" + i + " where testid=" + Convert.ToInt32(cRow_testtemp["id"].ToString()) + " order by testno", myConn);
DataSet ds_testfiletemp = new DataSet();
daAuthors_testfiletemp.Fill(ds_testfiletemp, "testfiletemp" + i);
myConn.Close();
DataTable tbl_testfiletemp;
tbl_testfiletemp = ds_testfiletemp.Tables["testfiletemp" + i];
DataRow cRow_testfiletemp;
for (int j = 0; j <= tbl_testfiletemp.Rows.Count - 1; j++)
{
cRow_testfiletemp = tbl_testfiletemp.Rows[j];cRow_testfile = tbl_testfile.NewRow();
cRow_testfile["testid"] = newID;
cRow_testfile["testno"] = cRow_testfiletemp["testno"];
cRow_testfile["testname"] = cRow_testfiletemp["filename"];
tbl_testfile.Rows.Add(cRow_testfile);
myConn.Open();
daAuthors_testfile.Update(ds_testfile, "testfile");
myConn.Close();
}
} }
int CT = 1;
while (CT <= Num)
{
OleDbConnection TmyConn = new OleDbConnection(strCon);
TmyConn.Open();
sql = "Drop table testtemp" + CT + "";
OleDbCommand myCommand = new OleDbCommand(sql, TmyConn);
myCommand.ExecuteNonQuery();
sql = "Drop table testfiletemp" + CT + "";
myCommand = new OleDbCommand(sql, TmyConn);
myCommand.ExecuteNonQuery();
TmyConn.Close();
CT++; }
}

解决方案 »

  1.   

    temp.mdb里有表test,testfile,testtemp1,~,testtemp5,testfiletemp1,~,testfiletemp5
    test和testtemp1,~,testtemp5的结构一样
    testfile和testfiletemp1,~,testfiletemp5的结构一样
    test里的id与testfile里的testid关联
    testtemp1~5里的id与testfiletemp1~5里的testid关联
    现在要把testtemp1~5和testfiletemp1~5的数据加到test和testfile里
    上面的代码执行效率不高
      

  2.   

    这样一条一条加入当然效率不高啦用SQL语句么,像这样...Insert Into testfile select * from testfiletempxxx
      

  3.   

    不需要存储过程,直接用SQL 足矣jxufewbt 你好像总是慢半拍哦,呵呵
      

  4.   

    里面有些字段的内容有and or '之类的用SQL语句出错啊