其他非强类型查询方法 |
Top Previous Next |
Database类提供了很多强类型查询方法,一般情况下,这些方法能够满足99%的查询需要了。但有时我们可能会需要更自定义、更灵活的查询数据库,因此,Database类还提供了很多非强类型查询方法:
AddXXXParameter() BeginUnDisconnectConnection() EndUnDisconnectConnection() CloseConnection() CreateConnection() ExecuteBatchInsert() <- 仅SQL Server数据库支持 ExecuteDataSet() ExecuteInsertReturnAutoIncrementID() ExecuteNonQuery() ExecuteReader() ExecuteScalar() GetConnection() GetDataAdapter() GetSqlStringCommand() GetStoredProcedureCommand()
特别提一下ExecuteBatchInsert方法,该方法仅SQL Server数据库支持.它提供了SQL Server支持的最高性能的批量插入实现。如果您要一次插入几万、甚至几十万条记录,一般的插入方法性能都不可能让人接受。该方法可以在这种情况下将超大数据量插入的性能提高N个数量级。
public int ExecuteBatchInsert(string tableName, string[] columnNames, DbType[] columnTypes, object[][] rows, int batchSize)
简单介绍一下该方法的主要参数: tableName 表名 columnNames 要插入的字段名列表 columnTypes 要插入的字段类型列表 rows 要插入的数据,这是一个二维数组,数组的每一行,包含对应到columnNames的字段的插入数值 batchSize 批处理大小
ExecuteBatchInsert使用示例
int ret = database.ExecuteBatchInsert( "Categories", new string[] { "CategoryName", "Picture" }, new DbType[] { DbType.String, DbType.Binary }, new object[][] { new object[] { "testtest", new byte[5] { 1, 50, 100, 150, 200 } }, new object[] { "testtest", new byte[5] }, new object[] { "testtest", new byte[5] } }, 2);
|