插入记录前检查空字符串

时间:2014-04-24 17:10:42

标签: c#

我是自定义从文本文件中导入一些行到我们的数据库,所以我在很多领域都有这样的代码。

 address.State = row["Location  State"].ToString();

我刚注意到要求

  

不要覆盖我们正在读取的值中的那些字段   文本文件为空或空白。

所以我假设我可以将它们包裹在这样的支票周围吗?

if(!String.IsNullOrEmpth(row["Location  State"].ToString()))
 address.State = row["Location  State"].ToString();

但在我开始对所有这些领域应用这种逻辑之前,我想检查一下,看看你是否有更好的解决方案?

2 个答案:

答案 0 :(得分:2)

也许扩展方法可以在这里提供帮助:

public static string ColumnValueOrDefault(this DataRow row, string column, string defaultValue)
{
    if (row == null)
    {
        throw new ArgumentNullException("row");
    }

    if (column == null)
    {
        throw new ArgumentNullException("column");
    }

    if (defaultValue == null)
    {
        throw new ArgumentNullException("defaultValue");
    }

    var rowString = row[column].ToString();

    return string.IsNullOrEmpty(rowString) ? defaultValue : rowString;
}

Address.State = row.ColumnValueOrDefault("column", Address.State);

答案 1 :(得分:1)

我会(并且确实)亲自使用这种模式:

string sTester = string.Empty

Address.State = string.IsNullOrEmpty(sTester = row["collumn"].ToString()) == false ? sTester : Address.State;

这允许每个collumn值设置一次,并使用相同的字符串变量重用,并且相对可读