运行后出现这个错误,怎么回事啊
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语句都可以查出来,可是程序里就总错误,求指点

解决方案 »

  1.   

    StringBuilder sa = new StringBuilder(150);
    试试呢?
      

  2.   

    不需要"@"
    pmts[0] = new MySqlParameter("tasktableid", tasktableid);
    pmts[1] = new MySqlParameter("upid", toid);
    为什么没有参数类型?
     
      

  3.   

    参数一般包括:参数名、参数类型、参数值。
    从下面这句看
    pmts[0] = new MySqlParameter("@tasktableid", tasktableid);
    只有参数名和参数值。
    你要是确认代码没问题,断点跟踪一下传入的值
      

  4.   

    可是我最开始不是设置了tasktableid的类型么
      

  5.   

    找到了,晕,是@toid,写错了
      

  6.   

    查询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也可以检查视图是否有错误,比如在视图定义中被引用的表已不存在。