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语句都可以查出来,可是程序里就总错误,求指点
8 个解决方案
#1
StringBuilder sa = new StringBuilder(150);
试试呢?
试试呢?
#2
不需要"@"
pmts[0] = new MySqlParameter("tasktableid", tasktableid);
pmts[1] = new MySqlParameter("upid", toid);
为什么没有参数类型?
pmts[0] = new MySqlParameter("tasktableid", tasktableid);
pmts[1] = new MySqlParameter("upid", toid);
为什么没有参数类型?
#3
什么参数类型,@要的吧,我其他的查询函数都是这样写的都没问题呢
#4
参数一般包括:参数名、参数类型、参数值。
从下面这句看
pmts[0] = new MySqlParameter("@tasktableid", tasktableid);
只有参数名和参数值。
你要是确认代码没问题,断点跟踪一下传入的值
从下面这句看
pmts[0] = new MySqlParameter("@tasktableid", tasktableid);
只有参数名和参数值。
你要是确认代码没问题,断点跟踪一下传入的值
#5
可是我最开始不是设置了tasktableid的类型么
#6
找到了,晕,是@toid,写错了
#7
看一下字段是否设置小了
#8
查询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也可以检查视图是否有错误,比如在视图定义中被引用的表已不存在。
出现这种问题有可能是两种情况
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也可以检查视图是否有错误,比如在视图定义中被引用的表已不存在。
#1
StringBuilder sa = new StringBuilder(150);
试试呢?
试试呢?
#2
不需要"@"
pmts[0] = new MySqlParameter("tasktableid", tasktableid);
pmts[1] = new MySqlParameter("upid", toid);
为什么没有参数类型?
pmts[0] = new MySqlParameter("tasktableid", tasktableid);
pmts[1] = new MySqlParameter("upid", toid);
为什么没有参数类型?
#3
什么参数类型,@要的吧,我其他的查询函数都是这样写的都没问题呢
#4
参数一般包括:参数名、参数类型、参数值。
从下面这句看
pmts[0] = new MySqlParameter("@tasktableid", tasktableid);
只有参数名和参数值。
你要是确认代码没问题,断点跟踪一下传入的值
从下面这句看
pmts[0] = new MySqlParameter("@tasktableid", tasktableid);
只有参数名和参数值。
你要是确认代码没问题,断点跟踪一下传入的值
#5
可是我最开始不是设置了tasktableid的类型么
#6
找到了,晕,是@toid,写错了
#7
看一下字段是否设置小了
#8
查询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也可以检查视图是否有错误,比如在视图定义中被引用的表已不存在。
出现这种问题有可能是两种情况
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也可以检查视图是否有错误,比如在视图定义中被引用的表已不存在。