ADO.NET快速入门——利用Command对象的ExecuteScalar()方法返回一个数据值

相关知识:

  1. 有些SQL操作,例如SUM,只会从数据库返回一个数据值,而不是多行数据
  2. 尽管也可以使用ExecuteReader()返回一个DataReader对象,代表该数据值,但是使用Command对象的ExecuteScalar方法更加方便
  3. ExecuteScalar()方法:该方法只能执行SELECT语句,通常用于统计,例如返回符合条件的记录个数

代码示例:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.Data;
 7 using System.Data.SqlClient;
 8
 9 namespace ConsoleApplication3
10 {
11     class Program
12     {
13         static void Main(string[] args)
14         {
15             string strConn = @"server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=root";
16             SqlConnection conn = new SqlConnection(strConn);
17
18             string strCmd = "SELECT COUNT(*) FROM Production.ProductCategory";
19             SqlCommand cmd = new SqlCommand(strCmd, conn);
20
21             conn.Open();
22
23             int count = Convert.ToInt32(cmd.ExecuteScalar());// ExecuteScalar返回一个object类型
24
25             Console.WriteLine("共有{0}行数据。", count);
26
27             conn.Close();
28         }
29     }
30 }

时间: 2024-08-26 14:07:22

ADO.NET快速入门——利用Command对象的ExecuteScalar()方法返回一个数据值的相关文章

ADO.NET快速入门——使用Command执行增删改操作,通过判断ExecuteNonQuery()返回值检查是否操作成功

相关知识: ExecuteNonQuery()方法:执行CommandText属性所制定的操作,返回受影响的记录条数.该方法一般用来执行SQL中的UPDATE.INSERT和DELETE等操作 对于UPDATE.INSERT和DELETE语句,执行成功返回值为该命令所影响的行数,如果影响行数为0时返回值为0,如果数据操作回滚则返回值为-1.但是对于其他的操作比如对数据库结构的操作,如果操作成功时返回的确是-1,例如给数据库添加一个数据表CREATE操作,当表创建成功返回-1,如果操作失败,则发生

ADO.NET之5-使用Command对象删除记录---ShinePans

源代码: using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SQLTest { class Program { static void Main(string[] args) { //连接数据库 str

ADO.NET之7-使用Command对象查找数据库记录---ShinePans

查询数据路里的数据数量: 代码: using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SQLTest { class Program { static void Main(string[] args) {

函数可以返回一个局部对象,而不能返回一个局部对象的引用(指针):

函数可以返回一个局部对象,而不能返回一个局部对象的引用(指针):当函数返回一个局部对象时,虽然这个对象已经释放,但是返回时会产生一个临时的对象.而当返回一个局部对象的引用时,这个对象已经不存在了.这就要求在函数参数中,包含一个引用或指针.int &func(int a,int b,int &retsult){ retsult = a + b; return &retsult}但是如下代码是错误的(返回局部对象的引用)int &func(int a,int b){ int &

ADO.NET快速入门——将DataReader作为函数返回值

相关知识: 在很多情况下,可能把数据库的访问封装到一个函数中,通过该函数返回一个DataReader对象给调用者.例如定义函数:SqlDataReader returnDR(),然后再Main函数中调用它. 但这里导致了一个问题:在哪里关闭数据库连接? 在returnDR()函数中关闭Connection,那么在Main函数中将无法获取每行数据: 在Main函数中关闭Connection,但是Main函数无法访问returnDR()函数内部定义的SqlConnection对象:(除非把SqlCo

JavaScript快速入门-ECMAScript本地对象(Array)

Array对象 Array对象和python里面的list对象一样,是用来存储多个对象值的对象,且方法和属性基本上类似. 一.属性 lenght 二.方法  1.concat()  用于连接两个或多个数组.类似python中的extend方法. arrayObject.concat(arrayX,arrayX,......,arrayX) 2.join()用于把数组中的所有元素放入一个字符串.类似python中的join.'*'.join(a) JavaScript中的join用法: 3.pop

ADO.NET快速入门——使用DataSet返回数据

相关知识: DataSet和DataAdapter的内部结构: DataSet通过DataAdapter从数据库中获取数据 DataSet对象内部包括一个集合(Tables),也就是可以拥有多个表(DataTables):每个表存放着从数据库放回的一个结果集(一般由一条SELECT语句产生一个结果集) DataTable对象包含一个行集合(Rows),集合中的每个元素都是一个DataRow类型的对象.DataRow提供了通过下标或者列名进行访问字段数据的操作 DataTable对象还包含一个列集

ADO.NET快速入门——带参数的查询防止SQL注入攻击

相关知识: 把单引号替换成两个单引号,虽然能起到一定的防止SQL注入攻击的作用,但是更为有效的办法是把要拼接的内容做成“参数” SQLCommand支持带参数的查询,也就是说,可以在查询语句中指定参数: 参数的设定: string strCmd = "SELECT AccountID FROM Account WHERE [email protected] AND [email protected]"; 对于SQL Server数据库,“@”是参数的前缀.上句中定义了两个参数:@Acc

ADO.NET快速入门——SQL注入攻击

相关知识: 可以通过字符串的拼接来构造一个SQL命令字符串,但是SQL命令字符串的拼接确是造成“SQL注入攻击”的重要原因. 考虑下列例子:从ProductCategory表中检索出Name为“Bikes”的类别信息.(示例数据库采用红皮书的数据库:AdventureWorks_WroxSSRS2012) 如果要凭借字符串,将写成: string name = "Bikes"; string strCmd = "SELECT ProductCategoryID, Name F