C# 将DataTable插入Oracle8i数据库表
如何将DataTable内容插入Oracle8i数据库表 1) 我就是这样做的。我想知道这是否有效: 我做这个foreach循环是为了使用DataTable dt中的数据更新oracle8i数据库表。表和dt具有完全相同的列: 基本上,我所做的是获取数据表的列名,并在insert查询中使用该列名,然后逐行进行insert: 代码如下: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 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
(我认为。如果可以,它可能会工作)