لدي datatable عن نتائج مسير طريقي
يحتوي اسم الشارع ويحوي مسافة مسير ويحوي توجيه متمثل بكتابة نصية ( للأمام، للخلف ، .... )
أريد افرز الجدول بحيث الغي التكرار عند مفارق الطرق يعني اذا كان التنبيه التالي هو للأمام (يعني نحنا على مفترق طرق والتوجيه عم بيطالب بمتابعة الطريق نفسه )
بهذه الحالة أريد أن أجمع المسافة مع المسافة السابقة واحذف السطر الثاني
وهنا تابع لانشاء ال datatable الاساسي مع ( تعبئته بالقيم وهذا ما مكان عملنا ... )
مع اظهار الجدول من خلال DataGrid
DataTable maindataTable = new DataTable();
DataTable SecdataTable = new DataTable();
//***********************************************************************************************************
private void ShowTurnByTurnDirections(Collection<RouteSegment> roads, Collection<Feature> features)
{
maindataTable.Locale = CultureInfo.InvariantCulture;
maindataTable.Columns.Add("RoadName");
maindataTable.Columns.Add("Direction");
maindataTable.Columns.Add("Length(Meter)", typeof(object));
for (int i = 0; i < roads.Count; i++)
{
DataRow dataRow = maindataTable.NewRow();
dataRow["RoadName"] = features.ColumnValues["FENAME"];
dataRow["Direction"] = roads.DrivingDirection;
dataRow["Length(Meter)"] = Math.Round(((LineBaseShape)features.GetShape()).GetLength(GeographyUnit.DecimalDegree, DistanceUnit.Meter), 2);
maindataTable.Rows.Add(dataRow);
}
dgridDirections.DataSource = maindataTable;
}
وتابع فيه محاولاتي عند ضغط زر الفلترة
public void btnFilter_Click(object sender, EventArgs e)
{
SecdataTable.Locale = CultureInfo.InvariantCulture;
//SecdataTable.Columns.Add("RoadName");
//SecdataTable.Columns.Add("Direction");
//SecdataTable.Columns.Add("Length(Meter)");
if (maindataTable.Rows.Count > 1)
{
SecdataTable = maindataTable.Copy();
DataColumn[] SecDColume = new DataColumn[SecdataTable.Columns.Count];
DataRow[] SecDRows = new DataRow[SecdataTable.Rows.Count];
//for (int i = 1; i < SecdataTable.Rows.Count; i++)
//{
// for (int j = 1; i < SecdataTable.Columns.Count; i++)
// {
// if (SecDRows[SecDColume] = "Forword" && SecDRows + 1[SecDColume] = "Forword")
// {
// }
// }
//}
//DataRow[] SecDRows = new DataRow[SecdataTable.Rows.Count];
//DataColumn[] SecDColum = new DataColumn[SecdataTable.Rows.Count];
//for (int i = 1; i < maindataTable.Rows.Count; i++)
//{
// string[] x;
// string[] y;
// double[] z;
// SecDColum[2] = z;
// z = SecDColum;
//if (Y['1'] =="")
//{ }
//else
//{ }
//}
//dataRow["RoadName"] = features.ColumnValues["FENAME"];
//dataRow["Direction"] = roads.DrivingDirection;
//dataRow["Length(Meter)"] = Math.Round(((LineBaseShape)features.GetShape()).GetLength(GeographyUnit.DecimalDegree, DistanceUnit.Meter), 2);
//maindataTable.Rows.Add(dataRow);
// maindataTable.Rows.CopyTo(MainDRows, 0);
// DataRow[] SecDRows = new DataRow[maindataTable.Rows.Count];
// MainDRows.CopyTo(SecDRows, 0);
// {
// SecdataTable.Rows.Add(SecDRows);
//}
dgridDirections.DataSource = SecdataTable;
}
else
MessageBox.Show("No Data to filter!");
}
}
* يوجد طريقة للتعامل مع ال DataRow حاولت اعطاء index لخلايا ال DataRow ولكن لم تنجح!!....
أرجو منكم الرد بالسرعة الممكنة كوني مضطر على هذه الفكرة في مشروع جامعي
وشكرا