En iyi yanıtlayıcılar
Devexpress grid yeni veri girişi ve kayıt

Soru
-
Merhaba
çalışmamdaki gridcontrol üzerinden yeni satır girişi ve düzeltme işlemi yapmak istiyorum.
CariVtDataSet set = new CariVtDataSet();
CariVtDataSetTableAdapters.ParalarTableAdapter adp = new CariVtDataSetTableAdapters.ParalarTableAdapter();
adp.Fill(set.Paralar);
var kayit = from c in set.Paralar
where c.PbrId == 2
select new { c.PbrId, c.Pbr, c.PbrUzun };
gridControl.DataSource = kayit;gridView.AddNewRow();
veriyi böyle çekiyorum. yeni satır ekliyorum. ancak veri girişine ve düzenlemeye izin vermiyor.
ne zamanki datasource = set.Paralar yaparsam sorun çözülüyor.
visual studionun kendi gridi kabul ediyor linq sorgusunu kabul ediyor ama devexpresin gridi kabul etmiyor.
nasıl çözebiliriz. neden linq sorgusunu datasource yapınca, ekleme ve düzenlemeye kapatıyor kendini.
bir yolu varmıdır. teşekkürler.
Yanıtlar
-
Aynı sorun için buraya gelenler olursa.
Birinci Sıkıntı Arkadas gridview readonly kısmını true yapmisti.
Ikinci Sıkıntı datatable.Where() kullanınca duzenlemeye izin vermiyordu.Asagidaki kodla cozuldu.Kayit etmekte sorun vardı. Dışarıdan datatable tanımlanınca duzeldi.
ColumnView view = gridView1; GridColumn colCategory = view.Columns["CategoryName"]; ColumnFilterInfo filter = new ColumnFilterInfo("[CategoryName] = 'Produce'", ""); view.ActiveFilter.Add(colCategory, filter);
İyi Gunler- Yanıt Olarak İşaretleyen Ferhat günay 4 Kasım 2022 Cuma 21:16
Tüm Yanıtlar
-
Bunu bir deneyip sonucunu yazar mısın?
CariVtDataSet set = new CariVtDataSet(); CariVtDataSetTableAdapters.ParalarTableAdapter adp = new CariVtDataSetTableAdapters.ParalarTableAdapter(); adp.Fill(set.Paralar); var kayit = (DataTable)(from c in set.Paralar.AsEnumerable() where c.PbrId == 2 select new { c.PbrId, c.Pbr, c.PbrUzun }).AsQueryable(); gridControl.DataSource = kayit; gridView.AddNewRow();
-
ilginize teşekkürler. şu hatayı verdi.
System.InvalidCastException
HResult=0x80004002
İleti='System.Linq.EnumerableQuery`1[<>f__AnonymousType1`3[System.Int32,System.String,System.String]]' türündeki nesne 'System.Data.DataTable' türüne atılamadı.
Kaynak=Cari
StackTrace:
at Cari.Formlar.ParaTanimlari.ParaTanimlari_Load(Object sender, EventArgs e) in C:\Users\Frh\Desktop\Cari\Formlar\ParaTanimlari.cs:line 28
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at DevExpress.XtraEditors.XtraForm.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at DevExpress.XtraEditors.DForm.WndProc(Message& m)
at DevExpress.XtraEditors.XtraForm.WndProc(Message& msg)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
-
Projeni göremediğim için hatayı takip edemiyorum, birde şunu deneyip sonucu yazarmısın.
CariVtDataSet set = new CariVtDataSet(); CariVtDataSetTableAdapters.ParalarTableAdapter adp = new CariVtDataSetTableAdapters.ParalarTableAdapter(); adp.Fill(set.Paralar); var kayit = (DataTable)(from c in set.Paralar where c.PbrId == 2 select new { c.PbrId, c.Pbr, c.PbrUzun }).AsQueryable(); gridControl.DataSource = kayit; gridView.AddNewRow();
-
-
Dediğim gibi bakmadan çözemiyorum.
Sen birde şunu dene, bakalım olacak mı?
CariVtDataSet set = new CariVtDataSet(); DataTable dt = set.Tables[0];//Tablo numarasını sana bıraktım bence sıfırdır sendeki. CariVtDataSetTableAdapters.ParalarTableAdapter adp = new CariVtDataSetTableAdapters.ParalarTableAdapter(); adp.Fill((CariVtDataSet.ParalarDataTable)dt);//ParalarDataTable yanlış ise doğru olana göre düzelt var kayit = (DataTable)(from c in (CariVtDataSet.ParalarDataTable)dt where c.Pbrld == 2 select new { c.Pbrld, c.Pbr, c.PbrUzun }).AsQueryable(); gridControl.DataSource = kayit; gridView.AddNewRow();
- Düzenleyen Bulent Bilir 4 Kasım 2022 Cuma 19:10
-
-
O zaman yanlış tablo seçilmiş.
Hani ben açıklama yazdım ya;//Tablo numarasını sana bıraktım bence sıfırdır sendeki.
Sen burada tablo ParalarDataTable'nın index numarasını bul. Demek ki sıfır CarilerDataTableye ait 1 olabilir 2 olabilir sırayla dene istersen sonucu yaz.
-
12 tabloymuş düzelttim şu hatayı aldı tekrar.
System.InvalidCastException
HResult=0x80004002
İleti='System.Linq.EnumerableQuery`1[<>f__AnonymousType1`3[System.Int32,System.String,System.String]]' türündeki nesne 'System.Data.DataTable' türüne atılamadı.
Kaynak=Cari
StackTrace:
at Cari.Formlar.ParaTanimlari.ParaTanimlari_Load(Object sender, EventArgs e) in C:\Users\Frh\Desktop\Cari\Formlar\ParaTanimlari.cs:line 32
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at DevExpress.XtraEditors.XtraForm.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at DevExpress.XtraEditors.DForm.WndProc(Message& m)
at DevExpress.XtraEditors.XtraForm.WndProc(Message& msg)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
-
-
Aynı sorun için buraya gelenler olursa.
Birinci Sıkıntı Arkadas gridview readonly kısmını true yapmisti.
Ikinci Sıkıntı datatable.Where() kullanınca duzenlemeye izin vermiyordu.Asagidaki kodla cozuldu.Kayit etmekte sorun vardı. Dışarıdan datatable tanımlanınca duzeldi.
ColumnView view = gridView1; GridColumn colCategory = view.Columns["CategoryName"]; ColumnFilterInfo filter = new ColumnFilterInfo("[CategoryName] = 'Produce'", ""); view.ActiveFilter.Add(colCategory, filter);
İyi Gunler- Yanıt Olarak İşaretleyen Ferhat günay 4 Kasım 2022 Cuma 21:16
-
Ek bilgi olması için bazı hatalar: