其他非强类型查询方法

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);