我想使用LINQ在數據庫中插入一些字段。其中一個字段包含XML數據(GPX)。通過LINQ將XML數據插入數據庫時出錯
當我運行下面的代碼:
rtlq.GpxData = new XElement(route.GpxData);
我得到這個異常:
Name cannot begin with the
'<'
character, hexadecimal value0x3C
我想說route.GpxData
有一個字符串類型,我轉換這類型的XML。 這裏是我的整個代碼:
public int Save(Route route)
{
aspnetdbDataContext aspdb = new aspnetdbDataContext();
RouteLinq rtlq=new RouteLinq();
rtlq.UserId = route.UserId;
rtlq.SourceName = route.Name;
//I have an error here
rtlq.GpxData = new XElement(route.GpxData);
rtlq.CreationTime = route.Time;
aspdb.RouteLinqs.InsertOnSubmit(rtlq);
aspdb.SubmitChanges();
int k1;
System.Data.Linq.ChangeSet cs1 = aspdb.GetChangeSet();
k1=cs1.Inserts.Count();
TrackPointlinq trlq = new TrackPointlinq();
foreach (var trackpoint in route.TrackPoints)
{
trlq.RouteFK=route.Id;
trlq.TrackTime=trackpoint.Time;
trlq.Latitude=(float) trackpoint.Latitude;
trlq.Longitude=(float)trackpoint.Longitude;
trlq.Elevation=trackpoint.Elevation;
}
aspdb.TrackPointlinqs.InsertOnSubmit(trlq);
aspdb.SubmitChanges();
int k2;
System.Data.Linq.ChangeSet cs2 = aspdb.GetChangeSet();
k2 = cs2.Inserts.Count();
if ((k1 == 0) && (k2 == 0))
{
return 1;
}
else
return 0;
}
你能幫我解決這個問題嗎?
編輯 示例XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpsies="http://www.gpsies.com/GPX/1/0" creator="GPSies http://www.gpsies.com - GpsiesTrack" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.gpsies.com/GPX/1/0 http://www.gpsies.com/gpsies.xsd">
<metadata>
<name>GpsiesTrack</name>
<link href="http://www.gpsies.com/">
<text>GpsiesTrack on GPSies.com</text>
</link>
<time>2012-06-26T18:58:39Z</time>
</metadata>
<trk>
<name>GpsiesTrack on GPSies.com</name>
<trkseg>
<trkpt lat="50.81482934" lon="12.90653228">
<ele>305.00000</ele>
<time>2012-05-01T00:00:00Z</time>
</trkpt>
<trkpt lat="50.85364209" lon="12.92404174">
<ele>297.00000</ele>
<time>2012-05-01T00:15:27Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>
它應該是XmlDocument而不是XElement? – JohnnBlade
您可以發佈route.GpxData的值 –
的樣本,它應該加載xml。使用XmlDocument doc = new XmlDocument(); doc.LoadXml(route.GpxData); – ZafarYousafi