Tag: connection

C#Mysql – 在async await服务器上使用数据库查询的锁

我有TcpListener类,我正在使用async/await读写。 对于这个服务器,我创建了单个数据库实例,我准备了所有数据库查询。 但对于一个以上的TcpClient我一直在exception: MySql.Data.MySqlClient.MySqlException发生MySql.Data.dll类型的exception,但未在用户代码中处理 附加信息:已经有一个与此Connection关联的打开DataReader ,必须先关闭它。 如果我理解正确,那么一次数据库查询就不会超过一个async客户端的问题。 所以我只是在我的查询中添加了锁,这样一切似乎都很好。 // One MySqlConnection instance for whole program. lock (thisLock) { var cmd = connection.CreateCommand(); cmd.CommandText = “SELECT Count(*) FROM logins WHERE username = @user AND password = @pass”; cmd.Parameters.AddWithValue(“@user”, username); cmd.Parameters.AddWithValue(“@pass”, password); var count = int.Parse(cmd.ExecuteScalar().ToString()); return count > 0; } 我也尝试使用这个方法为每个查询创建新连接,如SO社区的某个人所提到的,但这个方法比锁慢得多: using (MySqlConnection connection = new […]