我有以下功能:
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(谢天谢地几乎没有努力),但是这段代码现在失败了。