Ik probeer een soortemet SQL BETWEEN uit te voeren op 2 DataTables, maar ik krijg als error:
De volgende datatables bestaan:
nu wil dus dat de dDate in dtCalendar tussen dFrom en dTill in dtReservation ligt:
Een cast (DateTime) voor de columns in de vergelijking werkt ook niet
code:
1
| 'Cannot implicitly convert type 'System.Data.DataColumn' to 'System.DateTime' |
De volgende datatables bestaan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| //tabel 1:
DataTable dtCalendar = new DataTable("curCalendar");
dsSearch.Tables.Add(dtCalendar); // Add table to the DataSet
dtCalendar.Columns.Add("dDate",Type.GetType("System.DateTime"), "");
dtCalendar.Columns.Add("lFree", Type.GetType("System.Boolean"), "");
dtCalendar.Columns.Add("nDaysFree", Type.GetType("System.Int32"), "");
//tabel 2:
DataTable dtReservation = new DataTable("curReservation");
dsSearch.Tables.Add(dtReservation); // Add table to the DataSet
dtReservation.Columns.Add("id",Type.GetType("System.Int32"), "");
dtReservation.Columns.Add("iProduct", Type.GetType("System.Int32"), "");
dtReservation.Columns.Add("dFrom",Type.GetType("System.DateTime"), "");
dtReservation.Columns.Add("dTill",Type.GetType("System.DateTime"), "");
dtReservation.Columns.Add("nCount",Type.GetType("System.Int32"), ""); |
nu wil dus dat de dDate in dtCalendar tussen dFrom en dTill in dtReservation ligt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| foreach(DataRow rwCalendar in dsSearch.Tables["curCalendar"].Rows){
foreach (DataRow rwReservation in dsSearch.Tables["curReservation"].Rows){
DateTime __dFrom = rwReservation.Table.Columns["dFrom"];
DateTime __dDate = rwCalendar.Table.Columns["dDate"];
DateTime __dTill = rwReservation.Table.Columns["dTill"];
int rel1 = DateTime.Compare(__dFrom, __dDate);
int rel2 = DateTime.Compare(__dDate, __dTill);
if(rel1 < 0 && rel2 < 0){
// do some adding to a new datatable
}
}
} |
Een cast (DateTime) voor de columns in de vergelijking werkt ook niet