将DataTable插入Oracle8i数据库表

时间:2015-02-05 00:40:22

标签: c# foreach datatable

如何将DataTable内容插入Oracle8i数据库表?

1)这就是我的表现。我想知道这是否有效:

我使用DataTable dt中的数据创建了这个foreach循环来更新Oracle 8i数据库表TABLE。 TABLE和dt具有完全相同的列:

基本上,我所做的是获取数据表的列名,并在插入查询中使用它并逐行插入:

下面是代码:

    DataTable dt;
    int intColCtr1 = 1;
    int intColCtr2 = 1;
    strBTConn = strProvider + strUID + strPWD + strDataSource + strPersistSecurityInfo; 
OLEDBconn.Open();
    foreach (DataRow row in dt.Rows)
    {
     strSQL = "insert into TABLE ( ";                      
      foreach (DataColumn column in dt.Columns)
      {
       if (intColCtr1<=dt.Columns.Count)
       {
        strSQL = " " + column.ColumnName.ToString() + ", ";
       }
       else
       {
        strSQL = " " + column.ColumnName.ToString() + " ";
        intColCtr1++;
        }
     }
     strSQL = " ) values ";
    foreach (DataColumn column in dtUpdatedLACTM00.Columns)
    {
     if (intColCtr2<=dt.Columns.Count)
     {
      strSQL = " " + column.ToString() + ", ";
      }
    else
    {
     strSQL = " " + column.ToString() + " ";
     intColCtr2++;
     }
    }
                using (OleDbCommand OLEDBcmd = new OleDbCommand(strSQLCmd, OLEDBconn))
                {
                    OLEDBcmd.ExecuteNonQuery();
                }
    }

[edit]:上面的代码失败了,因为数据表中的数据包含oracle和c#转义字符(单引号和反斜杠)

2)另外,如果您有更好的想法使用DataTable dt中的数据更新数据库TABLE,请告诉我。

0 个答案:

没有答案