ExecuteSql、ExecuteSqlReader的区别

MySqlService.cs中有两个函数:ExecuteSql、ExecuteSqlReader
原以为不同点只是前者丢弃返回值,后者返回结果保留返回值而已。
 
实际ExecuteSql缺乏this.CopyParameters(cmd);语句,
所以之前不能使用sql.AddParameter("@guid", MySqlDbType.Text, guid);语句来添加参数,否则设置的参数会丢失。(教训)
只能自己拼接sql字串符。
 
所以,后续全部使用ExecuteSqlReader。
 
另外,要注意:ExecuteSqlReader函数,此函数将返回一个reader,所以不会自动释放连接,需要在读取完后手工释放。(因为会造成数据库连接池被占满)
而MySqlService的其他ExecuteXX函数都会自己释放连接。

原文地址:https://www.cnblogs.com/tdskee/p/14749616.html