读取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下载问题.万分感谢
这个和你数据库有什么关系吗? --------------------编程问答-------------------- 连接时间... --------------------编程问答-------------------- 连接时间也不是,我这超时一分钟,这个错误不到一秒就出来了 --------------------编程问答--------------------
我这个就是读MYSQL中BLOB字段的问题
补充:.NET技术 , C#