我是自定义从文本文件中导入一些行到我们的数据库,所以我在很多领域都有这样的代码。
address.State = row["Location State"].ToString();
我刚注意到要求
不要覆盖我们正在读取的值中的那些字段 文本文件为空或空白。
所以我假设我可以将它们包裹在这样的支票周围吗?
if(!String.IsNullOrEmpth(row["Location State"].ToString()))
address.State = row["Location State"].ToString();
但在我开始对所有这些领域应用这种逻辑之前,我想检查一下,看看你是否有更好的解决方案?
答案 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值设置一次,并使用相同的字符串变量重用,并且相对可读