当前位置:编程学习 > C#/ASP.NET >>

读取mysql大对象报错(断言错误)的问题


public byte[] DownloadFile(int id)
        {
            byte[] buffer = null;

            MySqlConnection sqlConn = GetConn();
            MySqlCommand cmd = new MySqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "select id,content from t_subject where id = @id";
            cmd.Parameters.Add("@id", MySql.Data.MySqlClient.MySqlDbType.Int32);
            cmd.Parameters[0].Value = id;
            cmd.Connection = sqlConn;
            sqlConn.Open();
            System.Data.Common.DbDataReader reader = cmd.ExecuteReader();

            if (reader.HasRows)
            {
                reader.Read(); -------------------------------------------------此句报错
                long len = reader.GetBytes(1, 0, null, 0, 0);
                buffer = new byte[len];
                len = reader.GetBytes(1, 0, buffer, 0, (int)len);
            }

            sqlConn.Close();
            return buffer;

        }

上面那句reader.Read()时,如果BLOB大一点的话,断言失败的错误,(但如果BLOB比较小,大概几M的样子,就不会出现这个错误)错误栈顶在
at MySqlPacket.ReadInteger(Int32 numbytes)

但我点忽略,程序能正常运行并正确下载文件,如何消除这个异常?或者自动忽略掉这个异常.

或者说.谁能提供个好点的方法解决WEBSERVICE下载问题.万分感谢

--------------------编程问答-------------------- 那改下数据库配置看有用么? max_allowed_packet --------------------编程问答-------------------- 没用啊 --------------------编程问答-------------------- C# 能关闭断言不,疯了 --------------------编程问答-------------------- 或者说.谁能提供个好点的方法解决WEBSERVICE下载问题.万分感谢


这个和你数据库有什么关系吗? --------------------编程问答-------------------- 连接时间...  --------------------编程问答-------------------- 连接时间也不是,我这超时一分钟,这个错误不到一秒就出来了 --------------------编程问答--------------------
引用 4 楼  的回复:
或者说.谁能提供个好点的方法解决WEBSERVICE下载问题.万分感谢


这个和你数据库有什么关系吗?


我这个就是读MYSQL中BLOB字段的问题
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,