C#操作MySQL异常

sw01 2014-03-31 12:28:18

System.Threading.ThreadAbortException: 正在中止线程。
在 System.Net.UnsafeNclNativeMethods.OSSOCK.recv(IntPtr socketHandle, Byte* pinnedBuffer, Int32 len, SocketFlags socketFlags)
在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode)
在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
在 System.IO.BufferedStream.ReadByte()
在 MySql.Data.MySqlClient.MySqlStream.LoadPacket()
在 MySql.Data.MySqlClient.MySqlStream.OpenPacket()
在 MySql.Data.MySqlClient.NativeDriver.ReadOk(Boolean read)
在 MySql.Data.MySqlClient.NativeDriver.SetDatabase(String dbName)
在 MySql.Data.MySqlClient.MySqlConnection.ChangeDatabase(String databaseName)
在 MySql.Data.MySqlClient.MySqlConnection.Open()

请问这个问题的出现是什么原因,有什么解决方法??请大大们给点建议。。
...全文
253 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sw01 2014-03-31
  • 打赏
  • 举报
回复
引用 2 楼 meduke 的回复:
把你操作mysql的代码贴出来看啊
你能分析出其中的原因么??
sw01 2014-03-31
  • 打赏
  • 举报
回复
引用 2 楼 meduke 的回复:
把你操作mysql的代码贴出来看啊

 /// <summary>
        /// 向MySql数据库更新数据
        /// </summary>
        /// <param name="parkType">映射表的对象</param>
        /// <returns></returns>
        public int Update(string sql)
        {
            // 插入数据到MySql数据库
            Console.WriteLine("向MySql中更新一条数据 ...");
            MySqlCommand cmd = new MySqlCommand(sql, this.mySqlConn);//声明执行sql文本或存储过程的对象
            int row = cmd.ExecuteNonQuery();
            this.Close();
            return row;// 执行后返回影响的结果行数
        }
meduke 2014-03-31
  • 打赏
  • 举报
回复
把你操作mysql的代码贴出来看啊
sw01 2014-03-31
  • 打赏
  • 举报
回复
偶是菜鸟 2014-03-31
  • 打赏
  • 举报
回复
应该是多线程的原因,锁住了吧
gw6328 2014-03-31
  • 打赏
  • 举报
回复
你这个可能是连接打开关闭的原因 你这个方法里面有Close()那你的sqlConn的Open()方法呢?在什么时候调用的 打开和关闭是否对应?
fudashouyao 2014-03-31
  • 打赏
  • 举报
回复
两个可能,一个表锁了,第二个那条数据别人正在操作可以考虑加个 for update。
sw01 2014-03-31
  • 打赏
  • 举报
回复
引用 5 楼 akuma8848 的回复:
关键是那个this.mySqlConn是什么sql语句。这方法,把全局变量用进来而不是参数。
我想和这个是无关的,真正的原因应该出现在多线程操作MySQL的原因,目前正在逐一排除。一位外国友友是这样回答的。我正在核实。

Hi Adil,

This seems similar to issue: http://bugs.mysql.com/bug.php?id=57365

The workaround then was to customize the net_xxx_timeout settings.
For example, issue the following after openning your connection and
before executing the datareader:

MySqlCommand cmd = new MySqlCommand(
  "set net_write_timeout=99999; set net_read_timeout=99999", con );
cmd.ExecuteNonQuery();

Let us know if that solves the prb.
Anymore 2014-03-31
  • 打赏
  • 举报
回复
关键是那个this.mySqlConn是什么sql语句。这方法,把全局变量用进来而不是参数。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧