[英]Getting a bool value from DataTable with linq
我必須使用DataTable和linq填充DataGrid。 DataTable包含一個MySql表(我正在使用linq在網絡流量方面優化程序),但是當linq嘗試從DataTAble獲取布爾值時,我得到了“ InvalidCastException”例外。 帶有“'OneWay'或'TwoWay'bing無法正常工作...”文本。 有什么辦法可以使其工作? (不好意思)
string q = "Select * from `beszallitoi_megrendeles` "
+ "where megrendelt='1' and beerkezett='0' "
+ "order by megrendeles_datuma desc;";
parancs = new MySqlCommand(q, Kapcsolat);
Kapcsolat.Open();
parancs.ExecuteNonQuery();
MySqlDataAdapter mda = new MySqlDataAdapter(parancs);
DataTable dt = new DataTable("beszallitoi_megrendeles");
mda.Fill(dt);
mda.Update(dt);
...
var results = from a in dt.AsEnumerable()
select new
{
AZ = a.Field<int>("AZ"),
MEGRENDEL = a.Field<DateTime>("MEGRENDEL"),
KERTSZDATUM = a.Field<DateTime>("KERTSZDATUM"),
VEVO_CSOPORT = a.Field<string>("VEVO_CSOPORT"),
ROVIDVEVONEV = a.Field<string>("ROVIDVEVONEV"),
GYARTO = a.Field<string>("GYARTO"),
MEGNEVEZES = a.Field<string>("MEGNEVEZES"),
DARAB = a.Field<int>("DARAB"),
MEGJEGYZES = a.Field<string>("MEGJEGYZES"),
RENDSZAM = a.Field<string>("RENDSZAM"),
BRENDSZAM = a.Field<string>("BRENDSZAM"),
ROGNEV = a.Field<string>("ROGNEV"),
BESZALLITO = a.Field<string>("BESZALLITO"),
MEGREND = a.Field<DateTime>("MEGREND"),
VARERK = a.Field<DateTime>("VARERK"),
CSKULD = a.Field<string>("CSKULD"),
MEGJEGY2 = a.Field<string>("MEGJEGY2"),
BMEGREND = a.Field<bool>("BMEGREND"),
BERKDAT = a.Field<DateTime>("BERKDAT"),
BEERK = a.Field<bool>("BEERK")
};
DgUjMegrendeles.ItemsSource = results;
編輯:這是布爾值列:(我將模式從“ TwoWay”修改為“ OneWay”,然后是“ OneTime”,但是所有行都具有真實值)
<DataGridCheckBoxColumn Width="45" Header="MREND." Binding="{Binding BMEGREND, Mode=OneTime, UpdateSourceTrigger=PropertyChanged}"/>
您正在創建的匿名類型( new { AZ = ... }
)具有只讀屬性。 您正在嘗試使用TwoWay
綁定模式綁定到某些東西。 您將必須將綁定模式設置為OneWay
或OneTime
。 但是,您不顯示XAML。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.