C# Command对象

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Tink_bell/article/details/80286936

1、Command对象的Execute方法

(1)ExecuteNonQuery:返回受影响的行数,它只能执行insert、update、delete的sql语句,执行select会出现特殊情况,报错或者影响其它的代码逻辑而报错。

    适用情况:执行insert、update、delete的sql语句的时候。
    返回对象:int类型

代码:

SqlCommand cmd=new new SqlCommand();  //创建command对象
cmd.Connection = conn;     //设置连接对象
cmd.CommandText = strSql;   //设置要查询的sql语句
int n=cmd.cmd.ExecuteNonQuery();  //执行

(2)ExecuteReader:返回一个DataReader对象,它用于执行select查询语句,提供一种从 数据库读取行的只进流的方式。

    适用情况:当想要读取一个表中的记录或是表中具体某一行某一列的值时。
    返回对象:DataReader对象(注意,该对象没有构造函数,只能由ExecuteReader创建)

代码:

SqlCommand cmd=new new SqlCommand();  //创建command对象
cmd.Connection = conn;     //设置连接对象
cmd.CommandText = strSql;   //设置要查询的sql语句
SqlDataReader reader = cmd.ExecuteReader();    //执行
while (reader.Read())        //必须写这个判断,否则会报错。 读取reader中的记录,并自动到下一条。
{
    string name = reader["name"];     //将reader对象当前的指向行的“name”列的值读取到字符串name中
}
reader.close();   //DataReader对象必须使用完之后关闭,否则会影响其它数据的操作。

(3)ExecuteScalar:执行查询,返回结果集中的第一行第一列。

    适用情况:当想查询表中是否存在某一条记录时。
    返回对象:object类型,因为不确定它的具体类型是什么。

代码:

SqlCommand cmd=new new SqlCommand();  //创建command对象
cmd.Connection = conn;     //设置连接对象
cmd.CommandText = strSql;   //设置要查询的sql语句
object o=cmd.ExecuteScalar();    //执行查询
if (o!=null)
{
    //查询到一条记录
 }


2、Command对象的属性

(1)Connection:Connection类型,连接对象

代码:

SqlConnection conn= new SqlConnection(strConn);    //strConn是连接字符串,创建一个连接对象
cmd.Connection = conn;   

(2)CommandText:string类型,查询语句

代码:

string strSql = "select * from user_info";
cmd.CommandText = strSql;

(3)Parameters:参数列表,常用的两个方法:Add(Parameter value),AddRange(Parameter[] value)

代码:

string strSql = "select * from user_info where username=@username";
cmd.Parameters.Add(new SqlParameter("@username", username));  //添加一个参数

//添加参数列表
string strSql = "select * from user_info where username=@username and pwd=@pwd";
SqlParameter[] param=new {new SqlParameter("@username", username),new SqlParameter("@pwd", pwd)}
cmd.Parameters.AddRange(param);

猜你喜欢

转载自blog.csdn.net/Tink_bell/article/details/80286936
今日推荐