ConstraintException但我不知道为什么!
问题描述:
我得到一个未处理的异常约束,当我运行一组特定的PARAMATERS的下面的代码:ConstraintException但我不知道为什么!
using (MySqlConnection connMySql = new MySqlConnection(global.g_connString))
{
MySqlCommand cmd = connMySql.CreateCommand();
cmd.CommandText = this.Query;
connMySql.Open();
using (MySqlDataReader dr = cmd.ExecuteReader())
{
DataTable dt = new DataTable();
dt.Load(dr);
return dt;
}
但是,如果我运行查询直接的(即不是我的应用程序,但使用查询浏览器)我看不到任何空值或任何会产生错误的内容。
它必须是数据特定的,就像我改变我的查询的日期范围它工作正常。
任何人有任何想法?
感谢,
本
PS查询如下:
SELECT COALESCE(ti.FIRST_NAME, 'Not Assigned') AS 'Technician',wo.WORKORDERID 'Request ID',aau.FIRST_NAME 'Requester', wo.TITLE 'Subject', rrs.resolution As Resolution, (wo.COMPLETEDTIME/1000) 'TimeStamp'
FROM WorkOrder_Threaded wot
INNER JOIN WorkOrder wo ON wot.WORKORDERID=wo.WORKORDERID
LEFT JOIN SDUser sdu ON wo.REQUESTERID=sdu.USERID
LEFT JOIN AaaUser aau ON sdu.USERID=aau.USER_ID
LEFT JOIN WorkOrderStates wos ON wo.WORKORDERID=wos.WORKORDERID
LEFT JOIN SDUser td ON wos.OWNERID=td.USERID
LEFT JOIN AaaUser ti ON td.USERID=ti.USER_ID
LEFT JOIN RequestResolution rrs ON wo.WORKORDERID=rrs.REQUESTID
WHERE (wo.COMPLETEDTIME != 0) AND (wo.COMPLETEDTIME != -1) AND (wo.COMPLETEDTIME IS NOT NULL)
AND wo.COMPLETEDTIME >= (UNIX_TIMESTAMP(TIMESTAMP('" + sdChartRange.From + @"')) * 1000)
AND wo.COMPLETEDTIME <= (UNIX_TIMESTAMP(TIMESTAMP('" + sdChartRange.To + @"')) * 1000)
AND wot.THD_WOID=wot.WORKORDERID
ORDER BY Technician ASC
凡sdChartRange.From和。要为datetime值。
答
如果不知道表的模式以及您要调用的查询,很难说。你确定他们是完美的搭配吗?
+0
据我所知。但是,这使得桌子在飞行中,不是吗?没有预定义的列,所以它应该只是我的查询的结果并创建一个基于它的数据表。 (或者我想......) – Ben 2011-01-25 12:25:55
答
我建议您拨打dataTable.GetErrors();
以获取错误行,然后检查/记录每个错误行的RowError
属性。
答
尝试使用不同的方式加载DataTable,以避免来自数据库的意外约束。在函数中试试这个。
MySqlCommand cmd = connMySql.CreateCommand();
cmd.CommandText = this.Query;
connMySql.Open();
DataTable dataTable;
// Create data adapter
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
// Populate dataTable based on DB query
da.Fill(dataTable);
da.Dispose();
return dataTable;
请告诉我们的数据库和查询本身的结构..你拥有对数据库的任何约束。因为只有在违反某些约束条件时才会引发此错误。 – 2011-01-25 12:31:50