SQL--ExecuteQuery和ExecuteNonQuery

文章目录


#前言

在进行SQLHelper层的构建时,经常会用到ExecuteQuery和ExecuteNonQuery,那么这两者有什么区别呢?如果您懂,请给我留言,我将及时更新,让更多的人知道,您若不懂,恭喜您,您来对地方了!

这两种方法执行的步骤如下:

string sql="select * from SQLtablename";
//新建连接
SqlConnection conn=new SqlConnection();
conn.Connectionstring=connectionString;
//新建命令对象
SqlCommand cmd=new SqlCommand(sql,conn);
// 调用命令对象的ExecuteQuery或者ExecuteNonQuery方法
conn.Open();
//datatable RecordsAffected=cmd.ExecuteQuery()
int RecordsAffected=cmd.ExecuteNonQuery();
conn.Close();
  1. 创建数据库连接
  2. 创建Command对象,并制定一个SQL方法进行
  3. 将Comman对象衣服到数据库连接上
  4. 调用ExecuteQuery或者ExecuteNonQuery方法
  5. 关闭连接
    上面步骤的代码如下:

#内容
##ExecuteQuery

ExecuteQuery是执行查询之后,返回值为查询内容。一般是用在查询语句方面。如:select * from [TableName]
###eg.

  • 举个例子
public int ExecuteNonQuery()
	{
	    string connStr = @"server = . ; database = newssystem ; uid = sa ; pwd = 123 ";
	    SqlConnection conn new SqlConnection(connStr);
	    conn.Open();
	    string sql = "select * from category(name) values('@name')"; 
	    SqlCommand cmd = new SqlCommand(sql,conn);
	    datatable dt = cmd.ExecuteQuery();
	    conn.Close();
	    return dt;
	}

上面这段代码执行之后,返回的是查询到的内容,比如上面这段代码就是查询category表内name列中所有参数为@name的内容并且返回。
##ExecuteNonQuery

ExecuteNonQuery是执行查询之后,返回值为该命令所影响的行数。一般使用在插入、修改、删除语句方面。如:insert into [TableName](name) values (@name)
###eg.

  • 举个例子
public int ExecuteNonQuery()
	{
	    string connStr = @"server = . ; database = newssystem ; uid = sa ; pwd = 123 ";
	    SqlConnection conn new SqlConnection(connStr);
	    conn.Open();
	    string sql = "insert into category(name) values('@name')"; 
	    SqlCommand cmd = new SqlCommand(sql,conn);
	    int res = cmd.ExecuteNonQuery();
	    conn.Close();
	    return res;
	}

上面这段代码执行之后,返回的值为category内name列中插入参数@name之后,name列中生效了几行,就返回整数 res 。


#总结
这两个方法名称非常相像,但是其用法不同,一个是返回具体内容,而另一个是返回执行生效的行数,所以,不要看着像什么就立马下结论是什么,而需要具体的付出实际实践之后才能得出具体方法的作用。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值