C#Datatable Escape特殊字符

时间:2014-12-03 12:32:28

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

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

我需要检查的列是:

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

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

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

非常感谢任何帮助,

谢谢

1 个答案:

答案 0 :(得分:0)

只需使用foreach - 循环并修改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 - 列,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);
// ...