وقت اساتید بخیر سوال ابتدائی دارم. در ویندوز فرم برای سراغ گرفتن ردیف دیتاگرید از این کد استفاده میشد
dataGridView1.Rows[i].Cells[2].Value
مثل مثال زیر
for(int i=0; i< dataGridView1.Rows.Count;i++) { SqlDataAdapter da = new SqlDataAdapter("insert into demo values('" + dataGridView1.Rows[i].Cells[0].Value + "')",sconn); da.Fill(ds, "main"); }
حالا در WPF چیزی به اسم ROW نیست که بعد از دیتا گرید بیاد.
سلام
روش های زیادی داره بدست آوردن یک سلول از دیتاگرید
باید باهاش مثل یه object برخورد کنید
بهتره سطر انتخابی رو به مدلی که اون رو به دیتاگرید bind کردید cast کنید.
دو قطعه کد زیر دو نمونه خوب میتونن باشن واستون:
//راه آبجکتی for(int i = 0; i < dataGrid.Items.Count; i++) { var selectedItem = dataGrid.Items[i]; var model =(Model)selectedItem; //عملیات رو روی شی مورد نظر انتخاب شده انجام دهید } //راه شبیه به راه شما for (int i = 0; i < dataGrid.Items.Count; i++) { var row = (System.Data.DataRow)dataGrid.Items[i]; string value = row["columnName"].ToString(); //یا string value = row[columnIndex].ToString(); //عملیات رو روی سلول مورد نظر انتخاب شده انجام دهید }
البته استاد عزیز روی این خط خطا میده
var row = (System.Data.DataRow)dataGrid.Items[i];
Unable to cast object of type 'DataModelLayer.Vw_DD_MM' to type 'System.Data.DataRow'
من معذرت میخوام از شما
کد زیر رو خودم در برنامه استفاده کردم و جواب میده
SelectedItem رو باید در حلقه ای تغییر بدین و کل دیتاگرید رو بخونید
private string param(int i) { object item = dataGrid.SelectedItem; return (dataGrid.SelectedCells[i].Column.GetCellContent(item) as TextBlock).Text; }
سلام من الان مشکل دارم با این کد حلقه فقط محدوده نمایش دیتا گرید را خوند ارور میده این هم ارور
گرید ویو را کوچک و بزرگ کنم تعداد خوندن بیشتر می شود و ایراد می گیره
An exception of type 'System.NullReferenceException' occurred in frosch.exe but was not handled in user code
Additional information: Object reference not set to an instance of an object.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)