如何将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,请告诉我。