[英]ConstraintException but i don't know why!
當我使用一組特定的參數運行以下代碼時,出現了未處理的約束異常:
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和.To是日期時間值。
嘗試以另一種方式加載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;
不知道表的架構和調用它的查詢就很難說。 您確定它們是絕配嗎?
我建議您致電dataTable.GetErrors();
要獲取錯誤行,然后檢查/記錄每個錯誤行的RowError
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.