ExecuteDataTableHelp执行查询语句,返回DataTableHelp对象。
语法为:
ExecuteDataTableHelp(SQLString,FillSchema,fillData,UseIndependenceConnection)
ExecuteDataTableHelp(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<DataTableHelp>。
ExecuteDataTableHelpAsync(SQLString,FillSchema,fillData,UseIndependenceConnection)
ExecuteDataTableHelpAsync(SQLString,cmdtype,sqlParms,FillSchema,fillData,UseIndependenceConnection)
Vb.Net |
Dim db As Database=Proj.SysDataFactory("UserDB") Dim strSQL As String="select * from EmployeeInfo" '示例1:最基础的返回一个表,只用于查询 Dim dt As DataTableHelp=db.ExecuteDataTableHelp(strSQL) If dt IsNot Nothing AndAlso dt.DataRows.Count>0 Then For Each dr As RowData In dt.DataRows Proj.MsgDebug.Add("第一列内容:{0}",dr(1)) Next End If '示例2:如果我们想前期只加载一个空表,然后经过其他操作加载后再根据条件加载相应的数据 dt=db.ExecuteDataTableHelp(strSQL,True,False) '第二个参数控制是否填充表结构,方便控制是否正常保存。第三个参数控制是否填充数据 '这里可以是其他加载信息 '我们再根据情况按需加载 dt.LoadFilter="FullName='陈某'" dt.Load '如果根据条件加载到了数据 If dt IsNot Nothing AndAlso dt.DataRows.Count>0 Then Dim dr As RowData=dt.DataRows(0) dr("Nation")="汉族" dt.Save() End If '示例3:带参数的SQL返回 '创建一个匿名对象,保存参数 Dim para = New With {.ID = "U000000003"} '直接执行存储过程 dt=db.ExecuteDataTableHelp("select * from UserInfo where ID=@ID",CommandType.Text,para) If dt IsNot Nothing AndAlso dt.DataRows.Count>0 Then Proj.MsgDebug.Add("返回结果共{0}条数据",dt.DataRows.Count) End If '示例4:执行存储过程 '创建一个匿名对象,保存参数 Dim para = New With {.ID = "U000000003",.Name="Jimmy"} '直接执行存储过程 dt=db.ExecuteDataTableHelp("GetEmployeeInfoByID",CommandType.StoredProcedure,para) If dt IsNot Nothing AndAlso dt.DataRows.Count>0 Then Proj.MsgDebug.Add("返回结果共{0}条数据",dt.DataRows.Count) End If '示例5:如果是执行一个没有参数的存储过程 dt=db.ExecuteDataTableHelp("GetEmployeeInfoByID",CommandType.StoredProcedure,Nothing) |
C# |
Database db = Proj.SysDataFactory["UserDB"]; string strSQL = "select * from EmployeeInfo"; // 示例1:最基础的返回一个表,只用于查询 DataTableHelp dt = db.ExecuteDataTableHelp(strSQL); if (dt != null && dt.DataRows.Count > 0) { foreach (RowData dr in dt.DataRows) { Proj.MsgDebug.Add("第一列内容:{0}", dr[1].ToString()); } } // 示例2:如果我们想前期只加载一个空表,然后经过其他操作加载后再根据条件加载相应的数据 dt = db.ExecuteDataTableHelp(strSQL, true, false); // 第二个参数控制是否填充表结构,方便控制是否正常保存。第三个参数控制是否填充数据 // 这里可以是其他加载信息 // 我们再根据情况按需加载 dt.LoadFilter = "FullName='陈某'"; dt.Load(); // 如果根据条件加载到了数据 if (dt != null && dt.DataRows.Count > 0) { RowData dr = dt.DataRows[0]; dr["Nation"] = "汉族"; dt.Save(); } // 示例3:带参数的SQL返回 // 创建一个匿名对象,保存参数 var para = new { ID = "U000000003" }; // 直接执行存储过程 dt = db.ExecuteDataTableHelp("select * from UserInfo where ID=@ID", CommandType.Text, para); if (dt != null && dt.DataRows.Count > 0) Proj.MsgDebug.Add("返回结果共{0}条数据", dt.DataRows.Count); // 示例4:执行存储过程 // 创建一个匿名对象,保存参数 var para = new { ID = "U000000003", Name = "Jimmy" }; // 直接执行存储过程 dt = db.ExecuteDataTableHelp("GetEmployeeInfoByID", CommandType.StoredProcedure, para); if (dt != null && dt.DataRows.Count > 0) Proj.MsgDebug.Add("返回结果共{0}条数据", dt.DataRows.Count); // 示例5:如果是执行一个没有参数的存储过程 dt = db.ExecuteDataTableHelp("GetEmployeeInfoByID", CommandType.StoredProcedure, null); |