ExecuteReader与ExecuteScalar的主要区别是什么?

2026-06-10 22:294阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计578个文字,预计阅读时间需要3分钟。

ExecuteReader与ExecuteScalar的主要区别是什么?

%E2%80%9C%E6%89%A7%E8%A1%8C%E9%9D%9E%E6%9F%A5%E8%AF%A2SQL%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95%EF%BC%8C%E6%89%93%E5%BC%80%E5%A4%B1%E6%95%B0%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95%EF%BC%8C%E5%8C%85%E6%8B%AC%E6%8F%92%E5%85%A5insert%E3%80%81%E5%88%A0%E9%99%A4delete%E3%80%81%E4%BF%AE%E6%94%B9update%E3%80%82%E6%89%A7%E8%A1%8C%E6%9F%A5%E8%AF%A2%E6%96%B9%E6%B3%95%EF%BC%8C%E8%BF%94%E5%9B%9E%E6%95%B0%E6%8D%AE%E9%98%9F%E5%88%97%EF%BC%8C%E9%80%9A%E8%BF%87%E2%80%9CExcuteReader%E2%80%9D%E6%96%B9%E6%B3%95%E3%80%82%E2%80%9C

ExecuteNonQuery方法执行非查询SQL操作包括增insert、删delete、改updateExcuteReader方法

ExecuteNonQuery方法 执行非查询SQL操作包括增insert、删delete、改update

ExcuteReader方法 执行查询,返回DataReader,通过DataReader的对象dr["列名"]

可以取得数据一次读一行可以通过while(dr.Read())进行循环读取

ExecuteScalar方法 执行查询只返回一个数据

在连接SQL Server数据库首先创建SqlConnection类和SqlCommand类实例分别用于连接到SQL Server数据库和执行SQL语句命令然后打开数据连接并使用SqlCommand的相应方法执行SQL语句。

ExecuteNonQuery()方法执行SQL语句并且不返回数据

ExecuteReader()方法将SQL语句发送给SqlConnection并生产一个SqlDataReader类对象该SqlDataReader对象包含SQL命令返回的数据

ExecuteScalar()方法执行SQl查询并返回查询结果集中的第一行的第一列忽略额外的列或行

例如

SqlConnection MyConncetion new SqlConnection(m_SqlConnection);

SqlCommand MyCmd new SqlCommand(p_StrSql, MyConncetion);

MyConncetion.Open();

MyCmd.ExecuteNonQuery();

MyConncetion.Open();

SqlDataReader MyReader MyCmd.ExecuteReader();

if (MyReader.Read())

{

return 0;

}

else

{

throw new Exception("Value Unavailable!");

}

MyConnection.Open();

SqlDataAdapter SqlDa new SqlDataAdapter(p_StrSql, MyConnection);

DataSet Ds new DataSet("ds");

SqlDa.Fill(Ds);

MyConncetion.Open();

ExecuteReader与ExecuteScalar的主要区别是什么?

object r MyCmd.ExecuteScalar();

if (object.Equals(r, null))

{

throw new Exception("Value Unavailable!");

}

else

{

return (int)r;

}

注意ExecuteReader() 方法需要配合 SqlDataReader 对象使用执行得到的数据集为只读且光标只能从前向后移动。

string oSql "select id, password, name, level    from verify";SqlCommand comm new SqlCommand(oSql, con);con.Open();//在调用方法前打开数据库连接可以减少数据库连接所花的时间节省数据库资源。SqlDataReader dr comm.ExecuteReader ();While(dr.Read()){    String id "";    id dr[0].ToString(); //(0为第一列)    //或 iddr["id"].ToString();(引用字段名)    //或id dr.GetString (dr.GetOrdinal ("id"));}//在读取数据结束后才能关闭数据库因为 SqlDataReader 对象的数据源必须保持数据库连接。con.Close();

类别sql知识 查看评论

本文共计578个文字,预计阅读时间需要3分钟。

ExecuteReader与ExecuteScalar的主要区别是什么?

%E2%80%9C%E6%89%A7%E8%A1%8C%E9%9D%9E%E6%9F%A5%E8%AF%A2SQL%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95%EF%BC%8C%E6%89%93%E5%BC%80%E5%A4%B1%E6%95%B0%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95%EF%BC%8C%E5%8C%85%E6%8B%AC%E6%8F%92%E5%85%A5insert%E3%80%81%E5%88%A0%E9%99%A4delete%E3%80%81%E4%BF%AE%E6%94%B9update%E3%80%82%E6%89%A7%E8%A1%8C%E6%9F%A5%E8%AF%A2%E6%96%B9%E6%B3%95%EF%BC%8C%E8%BF%94%E5%9B%9E%E6%95%B0%E6%8D%AE%E9%98%9F%E5%88%97%EF%BC%8C%E9%80%9A%E8%BF%87%E2%80%9CExcuteReader%E2%80%9D%E6%96%B9%E6%B3%95%E3%80%82%E2%80%9C

ExecuteNonQuery方法执行非查询SQL操作包括增insert、删delete、改updateExcuteReader方法

ExecuteNonQuery方法 执行非查询SQL操作包括增insert、删delete、改update

ExcuteReader方法 执行查询,返回DataReader,通过DataReader的对象dr["列名"]

可以取得数据一次读一行可以通过while(dr.Read())进行循环读取

ExecuteScalar方法 执行查询只返回一个数据

在连接SQL Server数据库首先创建SqlConnection类和SqlCommand类实例分别用于连接到SQL Server数据库和执行SQL语句命令然后打开数据连接并使用SqlCommand的相应方法执行SQL语句。

ExecuteNonQuery()方法执行SQL语句并且不返回数据

ExecuteReader()方法将SQL语句发送给SqlConnection并生产一个SqlDataReader类对象该SqlDataReader对象包含SQL命令返回的数据

ExecuteScalar()方法执行SQl查询并返回查询结果集中的第一行的第一列忽略额外的列或行

例如

SqlConnection MyConncetion new SqlConnection(m_SqlConnection);

SqlCommand MyCmd new SqlCommand(p_StrSql, MyConncetion);

MyConncetion.Open();

MyCmd.ExecuteNonQuery();

MyConncetion.Open();

SqlDataReader MyReader MyCmd.ExecuteReader();

if (MyReader.Read())

{

return 0;

}

else

{

throw new Exception("Value Unavailable!");

}

MyConnection.Open();

SqlDataAdapter SqlDa new SqlDataAdapter(p_StrSql, MyConnection);

DataSet Ds new DataSet("ds");

SqlDa.Fill(Ds);

MyConncetion.Open();

ExecuteReader与ExecuteScalar的主要区别是什么?

object r MyCmd.ExecuteScalar();

if (object.Equals(r, null))

{

throw new Exception("Value Unavailable!");

}

else

{

return (int)r;

}

注意ExecuteReader() 方法需要配合 SqlDataReader 对象使用执行得到的数据集为只读且光标只能从前向后移动。

string oSql "select id, password, name, level    from verify";SqlCommand comm new SqlCommand(oSql, con);con.Open();//在调用方法前打开数据库连接可以减少数据库连接所花的时间节省数据库资源。SqlDataReader dr comm.ExecuteReader ();While(dr.Read()){    String id "";    id dr[0].ToString(); //(0为第一列)    //或 iddr["id"].ToString();(引用字段名)    //或id dr.GetString (dr.GetOrdinal ("id"));}//在读取数据结束后才能关闭数据库因为 SqlDataReader 对象的数据源必须保持数据库连接。con.Close();

类别sql知识 查看评论