ExecuteQuery和ExecuteNonQuery的区别

前言

在机房重构时,每次写D层总会看见这样的代码:

int result = sqlHelper.ExecuteNonQuery(sql, sqlParams, CommandType.Text);

DataTable table = sqlHelper.ExecuteQuery(sql,sqlParams,CommandType .Text );

那么这里的ExecuteQuery和ExecuteNonQuery分别是什么时候用呢?

ExecuteQuery和ExecuteNonQuery

what:

ExecuteQuery

ExecuteQuery用在是执行查询之后,返回值为查询内容。一般是用在查询语句方面。如:SELECT

举个例子:

		public DataTable selectLevel(Entity.userinfo userInfo)
        {
            SQLHelper sqlHelper = new SQLHelper();
            SqlParameter[]sqlParams = {new SqlParameter ("@Level",userInfo.Level)};
            string sql = @"SELECT * FROM User_Info WHERE User_ID=@User_ID";
            DataTable table = sqlHelper.ExecuteQuery(sql,sqlParams,CommandType .Text );//查询
            return table;
        }

在这里插入图片描述

ExecuteNonQuery

ExecuteNonQuery是用在查询到结果以后进行的操作,返回值为该命令所影响的行数。一般使用在插入、修改、删除语句方面。如:INSERT 、UPDATE 、DELETE

举个栗子:

			SQLHelper sqlHelper = new SQLHelper();
			string sql = "UPDATE User_Info SET UserName = @UserName WHERE UserID = @UserID";
            SqlParameter[] sqlParams = new SqlParameter[]
            {
                new SqlParameter ("@UserID",userInfo.UserID ),
                new SqlParameter ("@UserName",userInfo.UserName ),
            };
            int result = sqlHelper.ExecuteNonQuery(sql, sqlParams, CommandType.Text);//修改语句
            return result;

在这里插入图片描述

后记

希望今天的分享可以帮助到您~

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
在C#中使用MySql数据库可以使用MySql.Data.MySqlClient命名空间中提供的类来实现,这些类可以通过ADO.NET来访问数据库。但是,为了方便使用,我们可以封装一个帮助类来进行数据库操作,以下是一个简单的MySql帮助类的示例代码: ``` using System; using System.Collections.Generic; using MySql.Data.MySqlClient; namespace MySqlHelper { public class MySqlHelper { private string connectionString; public MySqlHelper(string connectionString) { this.connectionString = connectionString; } public List<string> ExecuteQuery(string query) { List<string> results = new List<string>(); using (MySqlConnection connection = new MySqlConnection(connectionString)) { connection.Open(); using (MySqlCommand command = new MySqlCommand(query, connection)) { using (MySqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { results.Add(reader.GetString(0)); } } } } return results; } public int ExecuteNonQuery(string query) { int rowsAffected = 0; using (MySqlConnection connection = new MySqlConnection(connectionString)) { connection.Open(); using (MySqlCommand command = new MySqlCommand(query, connection)) { rowsAffected = command.ExecuteNonQuery(); } } return rowsAffected; } } } ``` 这个帮助类包含了两个方法:ExecuteQueryExecuteNonQueryExecuteQuery方法用于执行查询语句并返回结果集,ExecuteNonQuery方法用于执行不返回结果集的语句,例如插入、更新和删除语句。 使用示例: ``` using System; using MySqlHelper; namespace Test { class Program { static void Main(string[] args) { string connectionString = "server=localhost;database=mydb;uid=myuser;password=mypass;"; MySqlHelper helper = new MySqlHelper(connectionString); // 查询 string query = "SELECT name FROM users;"; var results = helper.ExecuteQuery(query); foreach (var result in results) { Console.WriteLine(result); } // 插入 string insertQuery = "INSERT INTO users (name, age) VALUES ('John', 30);"; int rowsAffected = helper.ExecuteNonQuery(insertQuery); Console.WriteLine(rowsAffected + " rows affected."); } } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值