2
我收到了無效的轉換異常,因爲我的COALESCE正在處理數字數據類型值和int數據類型值。正確的方法來解決在SQL Server中作爲INT的數字
查詢運行良好,但C#拋出無效的轉換異常。
我向我的COALESCE添加了一個強制轉換,但仍然收到無效的強制轉換異常。
問題:我是否可以在我的COALESCE中正確鑄造這個?
涉及錯誤的屬性聲明如下:
public int StartingMembershipCount { get; set; }
發生錯誤的地方就在這裏
m.StartingMembershipCount = r.GetNullableInt32("StartingMembershipCount",0);
我的數據助手定義爲:
public static int GetNullableInt32(this IDataRecord r, string name, int defaultValue)
{
var ordinal = r.GetOrdinal(name);
int returnVal = 0;
if (r.IsDBNull(ordinal))
returnVal = defaultValue;
else
returnVal = r.GetInt32(ordinal);
return returnVal;
}
這裏是我的COALESCE(表達式1具有數字數據類型)
COALESCE((
-- Expression 1
SELECT CAST(n.TOTAL_MBR AS INT)
FROM
usr_kiw_cus_certified n INNER JOIN
(SELECT ClubId, min(AsOfDate) AsOfDate FROM
(SELECT ukm.MASTER_CUSTOMER_ID ClubId, ukm.AS_OF_DATE AsOfDate FROM usr_kiw_cus_certified ukm WHERE ukm.AS_OF_DATE > @StartDate AND ukm.master_customer_id = c.MASTER_CUSTOMER_ID) as temp
GROUP BY ClubId) AS datetable
ON datetable.ClubId = n.MASTER_CUSTOMER_ID and n.AS_OF_DATE = datetable.AsOfDate
),
-- Expression 2
(SELECT COUNT(cr.MASTER_CUSTOMER_ID)
FROM cus_relationship cr
WHERE cr.RELATED_MASTER_CUSTOMER_ID = c.MASTER_CUSTOMER_ID
AND cr.RELATIONSHIP_TYPE = 'employment'
GROUP BY cr.RELATED_MASTER_CUSTOMER_ID
)) AS StartingMembershipCount,
很好的解釋。謝謝,這有幫助 – Slinky