ExecuteDataTable执行查询语句,返回DataTable对象。因为DataTable对象在本平台中使用的不多,所以此方法我们平时用到的也不多。
语法为:
ExecuteDataTable(SQLString,FillSchema,fillData,UseIndependenceConnection)
ExecuteDataTable(SQLString,cmdtype,sqlParms,FillSchema,fillData,UseIndependenceConnection)
参数名称 | 说明 | |
SQLString | 字符串类型,必填,Sql语句。 | |
cmdtype |
必填参数,CommandType枚举值之一,指定SQL语句的命令类型。CommandType型枚举包括以下可选值:
| |
sqlParms | 可选参数,sql语句中使用的参数对象。支持字典Dictionary(string,object)、IEnumerable(DbParameter)、匿名对象。默认为空, | |
FillSchema |
可选参数,逻辑型,表示是否填充表结构。如果是基础数据表,表中有主键的话,填充表结构可以方便我们用Save方法直接保存数据修改。如果表中没有主键,或者SQL命令填充的是视图,则此参数只能填充为False。默认值为False。 | |
fillData | 可选参数,逻辑型,表示是否填充加载数据。如果想要把SQL语句中返回的表加载上就输入True,如果只想加载一个空表,则填False,默认值为True。 | |
UseIndependenceConnection | 可选参数,逻辑型,是否使用独立连接处理。如果在一个事务中使用此方法,请传入False。正常情况下单独使用时直接传入True即可。默认值为True. |
为了提升开发效率,我们还提供了此方法的异步版本,参数和上面的同步版本是一样的,只是返回对象为Task<DataTable>。
ExecuteDataTableAsync(SQLString,FillSchema,fillData,UseIndependenceConnection)
ExecuteDataTableAsync(SQLString,cmdtype,sqlParms,FillSchema,fillData,UseIndependenceConnection)
Vb.Net |
Dim db As Database=Proj.SysDataFactory("UserDB") Dim strSQL As String="select * from EmployeeInfo" '最基础的返回一个表,只用于查询 Dim dt As DataTable=db.ExecuteDataTable(strSQL) If dt IsNot Nothing AndAlso dt.Rows.Count>0 Then For Each dr As DataRow In dt.Rows Proj.MsgDebug.Add("第一列内容:{0}",dr(1)) Next End If '带参数的SQL返回 '创建一个匿名对象,保存参数 Dim para = New With {.ID = "U000000003"} '直接执行存储过程 Dim dt As DataTable=db.ExecuteDataTable("select * from UserInfo where ID=@ID",CommandType.Text,para) If dt IsNot Nothing AndAlso dt.Rows.Count>0 Then Proj.MsgDebug.Add("返回结果共{0}条数据",dt.Rows.Count) End If '我们可以很轻易地根据DataTable对象获得对应的DataTableHelp对象。 Dim dtt As DataTableHelp=dt.GetDataTableHelp() |
C# |
Database db = Proj.SysDataFactory["UserDB"]; string strSQL = "select * from EmployeeInfo"; // 最基础的返回一个表,只用于查询 DataTable dt = db.ExecuteDataTable(strSQL); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { Proj.MsgDebug.Add("第一列内容:{0}", dr(1)); } } // 带参数的SQL返回 // 创建一个匿名对象,保存参数 var para = new { ID = "U000000003" }; // 直接执行存储过程 DataTable dt = db.ExecuteDataTable("select * from UserInfo where ID=@ID", CommandType.Text, para); if (dt != null && dt.Rows.Count > 0) { Proj.MsgDebug.Add("返回结果共{0}条数据", dt.Rows.Count); } // 我们可以很轻易地根据DataTable对象获得对应的DataTableHelp对象。 DataTableHelp dtt = dt.GetDataTableHelp(); |