I am trying to run a sql query through a file geo database layer. but i keep getting an exception thrown.
Here is my Code
Please any help is greatly appreciated
Thanks
Gordon
public string SearchAddresses(Map map, GeoCollection<
object
> args)
{
SessionHandler.StreetNumber = args[0].ToString();
SessionHandler.PreDir = args[1].ToString();
SessionHandler.PreType = args[2].ToString();
SessionHandler.StreetName = args[3].ToString();
SessionHandler.SufDir = args[4].ToString();
SessionHandler.City = args[5].ToString();
float mapWidth = 0f;
float mapHeight = 0f;
float.TryParse(args[6].ToString(), out mapWidth);
float.TryParse(args[7].ToString(), out mapHeight);
StringBuilder sbSQL = new StringBuilder();
string jsonresults;
if (!string.IsNullOrEmpty(SessionHandler.ActiveCounty))
{
LayerOverlay ovlFindResults = (LayerOverlay)map.CustomOverlays[SessionHandler.WebAddressPointsName];
FileGeoDatabaseFeatureLayer lyrFindResults = ovlFindResults.Layers[0] as FileGeoDatabaseFeatureLayer;
string sqlWhereCont = " WHERE “;
sbSQL.Append(“SELECT “);
//sbSQL.Append(SessionHandler.AddressPointsPointsIDColumn + " AS PointsID,”);
sbSQL.Append(“ObjectID As ObjectID,”);
//sbSQL.Append(“POINTS_ID as PointsID,”);
sbSQL.Append(SessionHandler.AddressPointsStreetNumberColumn + " AS StreetNumber,”);
sbSQL.Append(SessionHandler.AddressPointsSufTypeColumn + " AS SufType,”);
sbSQL.Append(SessionHandler.AddressPointsPreDirColumn + " AS PreDir,");
sbSQL.Append(SessionHandler.AddressPointsStreetNameColumn + " AS StreetName,");
sbSQL.Append(SessionHandler.AddressPointsLabelColumn + " AS Address “);
//sbSQL.Append(SessionHandler.AddressPointsCityColumn + " AS City”);
sbSQL.Append(" FROM [" + SessionHandler.WebAddressPointsArcLayerName + “]”);
if (!string.IsNullOrEmpty(SessionHandler.StreetNumber))
{
sbSQL.Append(sqlWhereCont + SessionHandler.AddressPointsStreetNumberColumn + " = ‘" + SessionHandler.StreetNumber + "’");
sqlWhereCont = "AND ";
}
if (!string.IsNullOrEmpty(SessionHandler.PreDir))
{
sbSQL.Append(sqlWhereCont + “UCASE(” + SessionHandler.AddressPointsPreDirColumn + “) = '” + SessionHandler.PreDir.ToUpper() + “’”);
sqlWhereCont = "AND ";
}
if (!string.IsNullOrEmpty(SessionHandler.AddressPointsPreTypeColumn))
{
if (!string.IsNullOrEmpty(SessionHandler.PreType))
{
sbSQL.Append(sqlWhereCont + “UCASE(” + SessionHandler.AddressPointsPreTypeColumn + “) = '” + SessionHandler.PreType.ToUpper() + “’”);
sqlWhereCont = "AND ";
}
}
if (!string.IsNullOrEmpty(SessionHandler.StreetName))
{
sbSQL.Append(sqlWhereCont + “UCASE(” + SessionHandler.AddressPointsStreetNameColumn + “) LIKE '” + SessionHandler.StreetName.ToUpper() + “%’”);
sqlWhereCont = "AND ";
}
if (!string.IsNullOrEmpty(SessionHandler.SufType))
{
sbSQL.Append(sqlWhereCont + “UCASE(” + SessionHandler.AddressPointsSufTypeColumn + “) LIKE '” + SessionHandler.SufType.ToUpper() + “%’”);
sqlWhereCont = "AND ";
}
if (!string.IsNullOrEmpty(SessionHandler.SufDir))
{
sbSQL.Append(sqlWhereCont + “UCASE(” + SessionHandler.AddressPointsSufDirColumn + “) = '” + SessionHandler.SufDir.ToUpper() + “’”);
sqlWhereCont = "AND ";
}
if (!string.IsNullOrEmpty(SessionHandler.City))
{
sbSQL.Append(sqlWhereCont + “UCASE(” + SessionHandler.WebCitiesColumn + “) = '” + SessionHandler.City.ToUpper() + “’”);
sqlWhereCont = "AND “;
}
sbSQL.Append(” ORDER BY ");
//sbSQL.Append( SessionHandler.AddressPointsCityColumn + “,”);
sbSQL.Append(SessionHandler.AddressPointsStreetNameColumn + “,”);
sbSQL.Append(SessionHandler.AddressPointsSufTypeColumn + “,”);
sbSQL.Append(SessionHandler.AddressPointsPreDirColumn + “,”);
sbSQL.Append(SessionHandler.AddressPointsStreetNumberColumn);
lyrFindResults.Open();
dtFindResults = lyrFindResults.QueryTools.ExecuteQuery(sbSQL.ToString());
var x = dtFindResults.Rows.Count;
//GetJson(dtFindResults);
jsonresults = GetJson(dtFindResults);
lyrFindResults.Close();
return jsonresults;
}
return string.Empty;
}