PDA

View Full Version : ساختن Table در حین اجرای برنامه



فاطمه هاشمیان
دوشنبه 26 اردیبهشت 1384, 09:45 صبح
می خواستم در حین اجرای برنامه یه Table جدید بسازم و محتوای جدول دیگری رو در آن کپی کنم و بعد محتوای آن رو در DataGrid نشان بدم و بتونم سطری از آن رو Delete کنم این کد رو نوشتم

System.Data.OleDb.OleDbDataAdapter oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter();
System.Data.DataTable myTable = new System.Data.DataTable(TableName);
myTable = this.DataSet.Fiesta_tbl.Copy();
this.DataSet.Tables.Add(TableName);
oleDbDataAdapter1.Fill(DataSet.Tables[TableName]);
DataGrid.DataSource = this.DataSet;
DataGrid.DataMember = this.DataSet.Tables[TableName].ToString();
this.DataSet.Tables[TableName][this.DataGrid.Curre ntRowIndex].Delete();
this.DataGrid.Refresh();
oleDbDataAdapter1.Update(DataSet);
اما اجرا نمیشه و این Error رو میدهد

Cannot apply indexing with[] to an expression of type 'System.Data.DataTable'

فاطمه هاشمیان
دوشنبه 26 اردیبهشت 1384, 13:46 عصر
اگر کسی از شما میدونه خیلی فوری لطفا" بگه :گیج:

Farhad.B.S
دوشنبه 26 اردیبهشت 1384, 19:00 عصر
مشکل از اینجاست :

this.DataSet.Tables[TableName][this.DataGrid.Curre ntRowIndex].Delete();
که باید بشه :

this.DataSet.Tables[TableName].Rows[this.DataGrid. CurrentRowIndex].Delete();

فاطمه هاشمیان
دوشنبه 26 اردیبهشت 1384, 23:40 عصر
از راهنماییتون بسیار ممنونم مشکل حل شد
یه سوال دیگه هم در همین مورد دارم ممنون میشم راهنماییم کنید

DataSet.Tables[TableName].Rows[this.DataGrid.Curre ntRowIndex].ID
من چند تا جدول با فیلدهای یکسان دارم اما این جداول برای کاربران مختلف است و در حین اجرای برنامه نام جدول مشخص میشه و در رشته ای به نام TableName قرار میگیرد و بعد در DataGrid نمایش داده میشود و من میخوام مقدار فیلد ID از این جدول رو در بیارم اما این پیغام خطا را میدهد؟

'System.Data.DataRow' does not contaion a definition for 'ID'