Fatal error encountered during command execution.错误

wenwenOwenwen 2011-10-10 03:29:53
运行后出现这个错误,怎么回事啊
public void SelectDatas(string tasktableid,int toid)
{
Task task = new Task();
StringBuilder sa = new StringBuilder();
sa.Append("select datas");
sa.Append(" from t_taskdatas,t_taskdata");
sa.Append(" where t_taskdata.taskdataid=t_taskdatas.taskdataid and t_taskdata.tasktableid=@tasktableid and t_taskdatas.upid=@toid");
MySqlParameter[] pmts = new MySqlParameter[2];
pmts[0] = new MySqlParameter("@tasktableid", tasktableid);
pmts[1] = new MySqlParameter("@upid", toid);
DataTable dt = DB.getDataTable_Pmts(sa.ToString(), pmts);
foreach (DataRow dr in dt.Rows)
{
task.datas = dr["datas"].ToString();
aList.Add(task);
}
}
这是查询代码,我在数据库里输入上面的SQL语句都可以查出来,可是程序里就总错误,求指点
...全文
15709 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangchengfck1 2012-10-11
  • 打赏
  • 举报
回复
查询MYSQL 数据库 时常出现 错误.错误信息 如下:Fatal error encountered during command execution.

出现这种问题有可能是两种情况

1.查询结果包含海量数据。长时间检索无响应。这种情况,需要优化SQL,尽量减少数据输出量。

2.表结构损坏。可以通过 CHECK TABLE REPAIR TABLE 语句进行检测或修复。

附 CHECK TABLE 语法说明

CHECK TABLE tbl_name[,tbl_name] ... [option] ...

option= {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}检查一个或多个表是否有错误。CHECK TABLE对MyISAM和InnoDB表有作用。对于MyISAM表,关键字统计数据被更新。CHECK TABLE也可以检查视图是否有错误,比如在视图定义中被引用的表已不存在。
haokeren 2012-08-03
  • 打赏
  • 举报
回复
看一下字段是否设置小了
wenwenOwenwen 2011-10-10
  • 打赏
  • 举报
回复
找到了,晕,是@toid,写错了
wenwenOwenwen 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 reface 的回复:]

参数一般包括:参数名、参数类型、参数值。
从下面这句看
pmts[0] = new MySqlParameter("@tasktableid", tasktableid);
只有参数名和参数值。
你要是确认代码没问题,断点跟踪一下传入的值
[/Quote]
可是我最开始不是设置了tasktableid的类型么
  • 打赏
  • 举报
回复
参数一般包括:参数名、参数类型、参数值。
从下面这句看
pmts[0] = new MySqlParameter("@tasktableid", tasktableid);
只有参数名和参数值。
你要是确认代码没问题,断点跟踪一下传入的值
wenwenOwenwen 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 reface 的回复:]

不需要"@"
pmts[0] = new MySqlParameter("tasktableid", tasktableid);
pmts[1] = new MySqlParameter("upid", toid);
为什么没有参数类型?
[/Quote]
什么参数类型,@要的吧,我其他的查询函数都是这样写的都没问题呢
  • 打赏
  • 举报
回复
不需要"@"
pmts[0] = new MySqlParameter("tasktableid", tasktableid);
pmts[1] = new MySqlParameter("upid", toid);
为什么没有参数类型?


wnyxy001 2011-10-10
  • 打赏
  • 举报
回复
StringBuilder sa = new StringBuilder(150);
试试呢?

110,566

社区成员

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

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

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