【问题标题】:Update oracle using dataset in .NET 1.1使用 .NET 1.1 中的数据集更新 oracle
【发布时间】:2012-02-26 17:16:22
【问题描述】:

我已经完成了一个代码,我使用 .NET 2.0 中的 adapter.Update 方法将给定的数据集更新到 oracle 数据库中 然而,同一段代码给出了异常 “当通过新行传递 DataRow 集合时,更新需要有效的 InsertCommand”

如果我遍历数据集并插入每一行,则需要很长时间(超过 5000 条记录)。

请建议一次将整个数据集更新到数据库中的方法。

提前致谢

【问题讨论】:

    标签: c# .net oracle


    【解决方案1】:

    这样做的方法是一次一行

    
    conn=objDbClass.open_connection();
    string cmdStr = "select COL1, COL2   from MY_TABLE";
    OleDbDataAdapter adapter = new OleDbDataAdapter(cmdStr, conn);
    OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);
    DataSet dataset1 = new DataSet();
    adapter.Fill(dataset1,"Table1");
    string err_txt="";
    int err_cnt=0;
    int call_no=Find_CallNo();
    for (int arcnt=0;arcnt
    DataRow dr1=dataset1.Tables[0].NewRow();
    dr1["COL1"]=drxl["COL1"].ToString();
    dr1["COL2"]=drxl["COL2"].ToString();
    dataset1.Tables[0].Rows.Add(dr1);
    int no_updated_rows = adapter.Update(dataset1,"Table1");
    int len = xlds.Tables[0].Columns.Count;
    }
    }
    }
    

    这里的每一行都是从excel中读取出来的,放到数据集的数据表中。然后调用数据适配器的更新函数。因此,如果数据集有 40 行,则更新函数将被调用 40 次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多