【问题标题】:C# Datatable Escape Special CharactersC# 数据表转义特殊字符
【发布时间】:2014-12-03 12:32:27
【问题描述】:

我有一个数据表,我需要循环并删除任何特殊字符,例如 ' 和 & 以及任何空字符串。

我需要检查的列是:

Address1 - need to be checked for special chars and empty strings
Address2 - need to be checked for special chars and empty strings
Address3 - need to be checked for special chars and empty strings
lat - need to check its not 0
lng - need to check its not 0

然后我需要修复数据表中的该记录,然后转到下一个并重复,直到整个数据表都已修复。我不想更新底层数据库。

我有一个谷歌地图 api 网页,如果任何字段为空或包含特殊字符,它就会失败。我会将固定数据表绑定到地图。

任何帮助将不胜感激,

谢谢

【问题讨论】:

  • 如果您展示一些实际代码,我们可以帮助解决这些问题。还是这是一个“请写代码”的问题?
  • 你的解决方法是零,只是你发布你的要求做你的作业。添加一些你写的代码

标签: c# string google-maps special-characters


【解决方案1】:

只需使用foreach-loop 并修改DataRows

foreach(DataRow row in dataTable.Rows)
{
    string addr1 = row.Field<string>("Address1");
    addr1 = addr1.Replace("'", "").Replace("&", "").Replace(" ", "");
    row.SetField("Address1", addr1);

    string addr2 = row.Field<string>("Address2");
    addr2 = addr2.Replace("'", "").Replace("&", "").Replace(" ", "");
    row.SetField("Address2", addr2);

    string addr3 = row.Field<string>("Address3");
    addr3 = addr3.Replace("'", "").Replace("&", "").Replace(" ", "");
    row.SetField("Address3", addr3);

    string lat = row.Field<string>("lat");
    lat = lat.Replace("0", "");
    row.SetField("lat", lat);

    string lng = row.Field<string>("lng");
    lng = lng.Replace("0", "");
    row.SetField("lng", lng);
}

如果latlng 实际上是int-columns,SetField 支持可空类型:

// ...
int lat = row.Field<int>("lat");
int? newLat = null;
if(lat != 0) newLat = lat;
row.SetField("lat", newLat);

int lng = row.Field<int>("lng");
int? newLng = null;
if (lng != 0) newLng = lat;
row.SetField("lng", newLng);
// ...

【讨论】:

  • 谢谢,只需要指出正确的方向。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 2016-05-01
  • 2019-01-29
  • 2018-07-16
相关资源
最近更新 更多