-1

嗨,我有这样的代码:

foreach (DataRow dr in upCSV.Rows)
                    {
ObjectParameter getCustomField1 = new ObjectParameter("CustomField1", String.IsNullOrEmpty(dr["CustomField1"]) ? null : Convert.ToInt32(dr["CustomField1"]));

var results = ordertable.usp_AppUpdateUserData(Convert.ToInt32( getCustomField1) )
   }

在这里我收到错误,因为无法从对象转换为字符串

这里 Customefield1 是 int 类型,它有空值。因此,当我调试时,它会将 customfield1 的值显示为 " "。那么如何将其转换为 int 并将其传递给我的存储过程?

4

1 回答 1

0

您可以将dr["CustomField1"]对象直接转换为int?

foreach (DataRow dr in upCSV.Rows) 

{

诠释?CustomField1 = dr["CustomField1"] as int?;

对象参数 getCustomField1 ;

if (CustomField1.HasValue)
{
    getCustomField1 = new ObjectParameter("CustomField1", CustomField1);
}
else
{
    getCustomField1 = new ObjectParameter("CustomField1", typeof(global::System.Int32));
    getCustomField1.Value = DBNull.Value;
}
    var results = ordertable.usp_AppUpdateUserData(getCustomField1);

}

于 2013-10-27T18:06:26.917 回答