将null值替换为默认文本
本文关键字:默认 文本 替换 null | 更新日期: 2024-10-22 19:15:16
我知道这个问题已经被问过很多次了,但我有下面的一段代码,我试图用它来默认null值。有人能帮我吗?我试过这个代码,但它没有给我空值的"NO DATA",而是什么都不显示。不确定我哪里错了。
更多详细信息:此代码不会将null值替换为"NO DATA"字符串。这里怎么了?我需要更改什么才能显示"无数据"?
protected override void Execute(NativeActivityContext context)
{
DataSet dataset = GetDataSet.Get(context);
foreach (DataTable dt in dataset.Tables)
{
foreach (DataRow row in dataset.Tables[0].Rows)
{
if (row["USER_COMMENT"] is System.DBNull)
{
ConvertNullToEmptyString(dt);
Console.WriteLine("In if");
}
else
{
Console.WriteLine("out if");
}
}
}
TransformResult.Set(context, dataset);
}
private static string ConvertNullToEmptyString(DataTable element)
{
if (element.Rows[0]["USER_COMMENT"] == DBNull.Value || element.Rows[0]["USER_COMMENT"] == null)
{
return "NO DATA";
}
else
{
return element.Rows[0]["USER_COMMENT"].ToString();
}
}
以下是我要做的
String stringtocompare;
if(String.isnullorwhitespace(stringtocompare)){
stringtocompare = "No VALUE";
}
不需要额外的功能。你只需要在循环中插入"无数据",就像下面的一样
foreach (DataRow row in dataset.Tables[0].Rows)
{
if (row["USER_COMMENT"] is System.DBNull)
{
row["USER_COMMENT"] = "NO DATA";
Console.WriteLine("In if");
}
else
{
Console.WriteLine("out if");
}
}
有几件事可能会有所帮助:
你可能想改变这个:
foreach (DataTable dt in dataset.Tables)
{
foreach (DataRow row in dataset.Tables[0].Rows)
{
...
到此:
foreach (DataTable dt in dataset.Tables)
{
foreach (DataRow row in dt.Rows)
{
...
否则,您将只查询循环中的一个表。
此外,我会使用String.IsNullOrEmpty()来查询数据。
如果不需要第二个函数,可以尝试以下操作:
protected override void Execute(NativeActivityContext context) {
DataSet dataset = GetDataSet.Get(context);
foreach(DataTable dt in dataset.Tables) {
foreach(DataRow row in dt.Rows) {
row["USER_COMMENT"] = String.IsNullOrEmpty(row["USER_COMMENT"].ToString()) ? "NO DATA" : row["USER_COMMENT"];
}
}
TransformResult.Set(context, dataset);
}
但是,如果有第二个函数要转换,它会看起来像这样:
protected override void Execute(NativeActivityContext context) {
DataSet dataset = GetDataSet.Get(context);
foreach(DataTable dt in dataset.Tables) {
foreach(DataRow row in dt.Rows) {
row["USER_COMMENT"] = ConvertNullToEmptyString(row["USER_COMMENT"]);
}
}
TransformResult.Set(context, dataset);
}
private static object ConvertNullToEmptyString(object element) {
if(String.IsNullOrEmpty(element.ToString())) {
return "NO DATA";
} else {
return element;
}
}
使用空字符串而不是空
if(row["USER_COMMENT"] == string.Empty)
你试过吗
私有静态字符串ConvertNullToEmptyString(DataTable元素){if(string.IsNullOrEmpty(element.Rows[0]["USER_COMMENT"])){return"无数据";}其他的{返回元素。行[0]["USER_COMMENT"].ToString();}}