【发布时间】:2013-07-05 20:57:55
【问题描述】:
我有一个数据库表
FruitCrateTable FruitCrateID, FruitCrateName, FruitGarden
现在我还创建了一个存储过程,
CREATE procedure [dbo].[GetFruitCrate]
(
@FruitCrateID int,
@FruitCrateName varchar(222)
)
AS
SELECT
*
FROM
FruitCrateTable
WHERE
FruitCrateID = @FruitCrateID
and
FruitCrateName = @FruitCrateName
现在,当我尝试使用 DataAccess 检查 FruitGarden 是否为空时,
我创建了行实例,
public myDataAccess.DataAccess.GetFruitCrateRow fruitCrateRow;
//then
if (!string.IsNullOrEmpty(fruitCrateRow.FruitGarden))
{
//do something but i am getting error, how can i fix this issue ?
else { // do something else }
错误,
The value for column 'FruitGarden' in table 'GetFruitCrate' is DBNull.</message><full>System.Data.StrongTypingException: The value for column 'FruitGarden' in table 'GetFruitCrate' is DBNull. ---> System.InvalidCastException: Unable to cast object of type 'System.DBNull' to type 'System.String'.
我将 Fruit Garden 设为 Null,因为它可以为 null
更新
当我尝试fruitCrateRow.FruitGarden != DBNull.Value 时,我得到错误运算符'!=' 不能应用于'string' 和'System.DBNull 类型的操作数
【问题讨论】:
-
您的存储过程是
[dbo].[GetFruitCrate],但您调用的是GetFruitCrateRow? -
@PatLillis 我重命名了我的场景