数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

简便的将DataSet导入到数据库中


发布日期:2024年03月01日
 
简便的将DataSet导入到数据库中

有时候我们需要经常的将数据集(DataSet)导入到数据库中可是怎么办呢? 有人就说了利用Sql语句马上就可以搞定了sql是可以搞定但是sql的拼接不可以有差错啊利用SqlParameter可以减少类型的烦恼可是如果是很多列那还不累死你

将DataSet导入Access中(OleDbDataAdapterUpdate方法 )

OleDbConnection olecon = new OleDbConnection(Provider=MicrosoftJetOLEDB;Data Source= + fileName + ;Jet OLEDB:Engine Type=);

oleconOpen();

OleDbDataAdapter oda = new OleDbDataAdapter(select * from TableName olecon);

DataSet newds = new DataSet();

try

{

OleDbCommandBuilder cmdbld = new OleDbCommandBuilder(oda);

cmdbldSetAllValues = true;

odaInsertCommand = cmdbldGetInsertCommand();

dsTables[i]BeginLoadData();

int rowcount = dsTables[i]RowsCount;

for (int n = ; n < rowcount; n++)

{

dsTables[i]Rows[n]SetAdded();

}

dsTables[i]EndLoadData();

odaUpdateBatchSize = ;

}

catch

{

}

odaUpdate(ds dsTables[i]TableName);

odaDispose();

oleconClose();

oleconDispose();

OleDbDataAdapterUpdate方法和用Sql拼接插入的效率基本上是一样的OleDbDataAdapterUpdate

其实也是一条一条的插入更新的但是他可以提高我们程序的稳定性

将DataSet导入到Sql Server中(SqlBulkCopy方法)

SqlConnection conn = new SqlConnection(sqlConnectString);

connOpen();

SqlBulkCopy sbc = new SqlBulkCopy(conn);

sbcDestinationTableName = dsTables[i]TableName;

//将数据集合和目标服务器的字段对应

for (int q = ; q < dsTables[i]ColumnsCount; q++)

{

sbcColumnMappingsAdd(dsTables[i]Columns[q]ColumnName dsTables[i]Columns[q]ColumnName);

}

try

{

sbcWriteToServer(dsTables[i]);

}

catch //(Exception ex)

{

//throw ex;

continue;

}

finally

{

dsDispose();

connClose();

sbcClose();

}

这个是不是也比sql insert也好多了这个效率要比SQL Insert快多了

               

上一篇:创建一个Web项目,配置数据库连接

下一篇:用sql语句动态的创建access表