文章目录
#前言
在进行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();
- 创建数据库连接
- 创建Command对象,并制定一个SQL方法进行
- 将Comman对象衣服到数据库连接上
- 调用ExecuteQuery或者ExecuteNonQuery方法
- 关闭连接
上面步骤的代码如下:
#内容
##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 。
#总结
这两个方法名称非常相像,但是其用法不同,一个是返回具体内容,而另一个是返回执行生效的行数,所以,不要看着像什么就立马下结论是什么,而需要具体的付出实际实践之后才能得出具体方法的作用。