C# 将DataTable插入Oracle8i数据库表

C# 将DataTable插入Oracle8i数据库表,c#,foreach,datatable,C#,Foreach,Datatable,如何将DataTable内容插入Oracle8i数据库表 1) 我就是这样做的。我想知道这是否有效: 我做这个foreach循环是为了使用DataTable dt中的数据更新oracle8i数据库表。表和dt具有完全相同的列: 基本上,我所做的是获取数据表的列名,并在insert查询中使用该列名,然后逐行进行insert: 代码如下: DataTable dt; int intColCtr1 = 1; int intColCtr2 = 1; strBTConn =

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

1) 我就是这样做的。我想知道这是否有效:

我做这个foreach循环是为了使用DataTable dt中的数据更新oracle8i数据库表。表和dt具有完全相同的列:

基本上,我所做的是获取数据表的列名,并在insert查询中使用该列名,然后逐行进行insert:

代码如下:

    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();
                }
    }
DataTable dt;
int intColCtr1=1;
int intColCtr2=1;
strBTConn=strProvider+strUID+strPWD+strDataSource+strPersistSecurityInfo;
OLEDBconn.Open();
foreach(数据行中的数据行)
{
strSQL=“插入表(”;
foreach(dt.Columns中的DataColumn列)
{

如果(IntcolCtr1请将您的问题解释一下您自己尝试此操作时发生的情况。感谢您为未来的搜索者改进了此问题!为什么不使用类似的方法:在MyTable中插入选择DataTable.*FROM DataTable;您使用
System.Data.OleDb
classes,是否可以切换到
System.Data.SqlClient
classes?该类基本上就是针对这种情况设计的。如果您无法切换,您可能会从@ScottChamberlain获得更好的性能。我忘了提到我使用的数据库是Oracle8i。该类是否适用于Oracle 8i?不,SqlBulkCopy仅适用于您可以使用
SqlConnection
的服务器。您可以不要在Oracle8i上使用
SqlConnection
(我认为。如果可以,它可能会工作)