私は次の機能を持っています:
public T GetScalar<T>(string sql, T defaultValue, SQLParam[] sqlParams = null)
{
DataTable dt = GetDataTable(sql, sqlParams);
if (dt.Rows.Count == 0) return defaultValue;
else
{
try
{
object tmp = dt.Rows[0][0];
return (T)tmp;
}
catch { return defaultValue; }
}
}
を取得していInvalidCastException
ます。
デバッグ中に、 の値tmp
が 3 でありT
、タイプが であることを確認できますint
。
ここで何が問題なのですか?
編集
ちょっとした背景: これは MySQL で機能していました。SQLServer に移行しましたが (ありがたいことにほとんど労力を要しませんでした)、このコードは失敗しました。