【发布时间】:2011-11-08 13:39:54
【问题描述】:
我正在尝试从 SQL 数据库返回一个值。但是,每次执行以下方法时,我都会收到一条错误消息:“InvalidCastException 未处理。对象无法从 DBNull 转换为其他类型。”
您能对此有所了解,我们将不胜感激。我使用的方法如下。
谢谢。
public static int ScrapTotal2(string prdTypeV, string startDateV, string prtCodeV)
{
int scrapTotal2;
SqlParameter prdType = new SqlParameter("@prdType", SqlDbType.VarChar);
prdType.Value = prdTypeV;
SqlParameter startDate = new SqlParameter("@startDate", SqlDbType.VarChar);
startDate.Value = startDateV;
SqlParameter prtCode = new SqlParameter("@prtCode", SqlDbType.VarChar);
prtCode.Value = prtCodeV;
SqlCommand scrapTotal2SC = new SqlCommand("SELECT SUM([QTY_SCRP]) FROM [TBL_PRDMST] WHERE [PRD_CODE] LIKE @prdType AND [PRD_DATE] = @startDate AND [PRT_CODE] LIKE @prtCode", DataAccess.myConnection);
scrapTotal2SC.Parameters.Add(prdType);
scrapTotal2SC.Parameters.Add(startDate);
scrapTotal2SC.Parameters.Add(prtCode);
DataAccess.myConnection.Open();
scrapTotal2 = Convert.ToInt32(scrapTotal2SC.ExecuteScalar());
DataAccess.myConnection.Close();
return scrapTotal2;
}
【问题讨论】:
-
您的选择返回 NULL 还是有效值?先签入数据库
-
您是否有权访问代码并能够对其进行调试?如果您能告诉我们哪一行引发了异常,那就太好了。将你的方法代码包装在 try-catch 中,你会得到有用的信息。