ADO.NET ExecuteScalar 方法的使用及注意

ExecuteScalar 方法允许我们查询单一结果,我们来看看什么是单一结果,有那些需要注意的事项

1. 下面是我对 ExecuteScalar 的简单封装,接下来我们看看,如何使用

/// <summary>
/// 查询单一结果
/// </summary>
/// <param name="sql"></param>
/// <param name="pars"></param>
/// <returns>object</returns>
/// <exception cref="Exception"></exception>
public static object ExecuteScalar(string sql, params SqlParameter[] pars)
{
    SqlConnection conn = new SqlConnection(connStr);
    SqlCommand cmd = new SqlCommand(sql, conn);
    cmd.Parameters.Clear();
    if (pars != null)
    {
        cmd.Parameters.AddRange(pars);
    }
    try
    {
        conn.Open();
        return cmd.ExecuteScalar();
    }
    catch (Exception ex)
    {
        //记录到日志
        throw new Exception(ex.Message);
    }
    finally { conn.Close(); }
}

2. 如何使用: ExecuteScalar 方法 获取单一结果

//根据ProductId去查询匹配到的数据,拿到ProductName值,
string
sql = "select ProductName from Products where ProductId=@ProductId";

//不可写成以下sql语句,虽然说不会报错,但是只会返回第一个ProductName的值,

  string sql = "select ProductName,ProductId,UnitPrice from Products where ProductId=@ProductId";

3. 如何使用: ExecuteScalar 方法判断是否存在此条数据

// 如果查询到了,就会返回1,没有查询到就是0
string
sql = "select count(1) from Products where ProductId=@ProductId";

 4. 使用 ExecuteScalar 查询表中数据总条数

string sql = "select count(*) from Products";

5.使用 ExecuteScalar 获取平均值

string sql = "select avg (ClassHour) from Products";

 



posted @ 2024-06-19 11:57  龙卷风吹毁停车场  阅读(85)  评论(0)    收藏  举报