ExecuteScalar执行查询语句,返回SQL语句返回的表中第一行第一列的数据。所以我们尽量写SQL语句的时候就仅返回一行一列的结果,让结果更具确定性。
语法为:
ExecuteScalar(SQLString,UseIndependenceConnection) '这里命令类型为Text,参数默认为空
ExecuteScalar(SQLString,cmdtype,UseIndependenceConnection) '这里参数默认为空
ExecuteScalar(SQLString,sqlParms,UseIndependenceConnection) '这里命令类型为Text
ExecuteScalar(SQLString,cmdtype,sqlParms,UseIndependenceConnection)
参数名称 | 说明 | |
SQLString | 字符串类型,必填,Sql语句。 | |
cmdtype |
必填参数,CommandType枚举值之一,指定SQL语句的命令类型。CommandType型枚举包括以下可选值:
| |
sqlParms | 可选参数,sql语句中使用的参数对象。支持字典Dictionary(string,object)、IEnumerable(DbParameter)、匿名对象。默认为空, | |
UseIndependenceConnection | 可选参数,逻辑型,是否使用独立连接处理。如果在一个事务中使用此方法,请传入False。正常情况下单独使用时直接传入True即可。默认值为True. |
为了提升开发效率,我们还提供了此方法的异步版本,参数和上面的同步版本是一样的,只是返回对象为Task<object>。
ExecuteScalarAsync(SQLString,UseIndependenceConnection) '这里命令类型为Text,参数默认为空
ExecuteScalarAsync(SQLString,cmdtype,UseIndependenceConnection) '这里参数默认为空
ExecuteScalarAsync(SQLString,sqlParms,UseIndependenceConnection) '这里命令类型为Text
ExecuteScalarAsync(SQLString,cmdtype,sqlParms,UseIndependenceConnection)
Vb.Net |
Dim db As Database=Proj.SysDataFactory("UserDB") Dim strSQL As String="select Count(*) from EmployeeInfo" '示例1:执行没有返回值的SQL Dim intCount As Integer=db.ExecuteScalar(strSQL) Proj.MsgDebug.Add("符合条件的共{0}条数据。",intCount) '示例2:执行带参数的SQL语句 '创建一个匿名对象,保存参数 Dim para = New With {.ID = "U000000003"} Dim intRun As Integer=db.ExecuteScalar("select Count(*) from EmployeeInfo Where EmployeeID=@ID",CommandType.Text,para) Proj.MsgDebug.Add("符合条件的共{0}条数据。",intRun) |
C# |
Database db = Proj.SysDataFactory["UserDB"]; string strSQL = "select Count(*) from EmployeeInfo"; // 示例1:执行没有返回值的SQL int intCount = db.ExecuteScalar(strSQL).CType<int>(); Proj.MsgDebug.Add("符合条件的共{0}条数据。", intCount); // 示例2:执行带参数的SQL语句 // 创建一个匿名对象,保存参数 var para = new { ID = "U000000003" }; int intRun = db.ExecuteScalar("select Count(*) from EmployeeInfo Where EmployeeID=@ID", CommandType.Text, para).CType<int>(); Proj.MsgDebug.Add("符合条件的共{0}条数据。", intRun); |