ورود

نسخه کامل مشاهده نسخه کامل : DataTable_DataGridView



shotok
17-05-2010, 10:31
با سلام
من برای پر کردن دیتا گرید از یه دیتا تیبل استفاده می کنم. به این صورت که دیتا تیبل رو پر کرده و به شکل زیر عمل میکنم.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
می خوام هنگام اجرا یکی از ستون ها دیده نشود.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ولی با خطا مواجه می شوم.چراکه هنگام لود شدن فرم دیتا گرید توسط دیتا تیبل پر می شه و من قبل از آن نمی تونم به ستون های گرید دسترسی داشته باشم.

می شه کار دیگه ای کرد؟
با تشکر

Open-Source
17-05-2010, 10:38
تکه کدت رو به همراه اون خطا اینجا بزار تا یه نگاهی بندازیم.

shotok
17-05-2010, 14:14
تکه کدت رو به همراه اون خطا اینجا بزار تا یه نگاهی بندازیم.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

و خطای مذکور به شرح ذیل می باشد.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

عــــلی
17-05-2010, 16:27
سلام.
من کد شما رو به شکل زیر تغییر دادم جواب گرفتم.
مشکل خطای شما اینه که Column یی که بهش دادین موجود نیست.یعنی اون اسمی که دادین حتماً باید وجود داشته باشه وگرنه خطا میده:


DataRow dRow2;
DataTable MyTable = new DataTable();
string[] arrstrFunctionalArea = new string[5];
arrstrFunctionalArea[0] = "rowID";
arrstrFunctionalArea[1] = "origAddr";
arrstrFunctionalArea[2] = "destAdd";
arrstrFunctionalArea[3] = "time";
arrstrFunctionalArea[4] = "message";
for (int i = 0; i < 5; i++)
{
string str = arrstrFunctionalArea[i];
DataColumn dtCol = new DataColumn(str);
dtCol.DataType = System.Type.GetType("System.String");
dtCol.DefaultValue = "";
MyTable.Columns.Add(dtCol);
}
string s = "SELECT * FROM Receive";
//connect mconn = new connect();
//try
//{
// OleDbCommand sc = mconn.conn(s);
// OleDbDataReader myReader = sc.ExecuteReader();
// while (myReader.Read())
// {
// dRow2 = MyTable.NewRow();
// dRow2[rowID] = myReader["rowID"].ToString();
// dRow2[origAddr] = myReader["origAddr"].ToString();
// dRow2[destAdd] = myReader["destAdd"].ToString();
// dRow2[time] = myReader["time"].ToString();
// dRow2[message] = myReader["message"].ToString();
// MyTable.Rows.Add(dRow2);
// }
//}
//catch { }
dGReceive.DataSource = MyTable;
DataGridViewButtonColumn buttoncolumn = default(DataGridViewButtonColumn);
buttoncolumn = new DataGridViewButtonColumn();
buttoncolumn.HeaderText = "¦يںë§ë";
buttoncolumn.Name = "read";
buttoncolumn.Text = "¦يںë§ë پیںê کي¢ںى";
buttoncolumn.UseColumnTextForButtonValue = true;
buttoncolumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
buttoncolumn.FlatStyle = FlatStyle.Standard;
//buttoncolumn.CellTemplate.Style.BackColor = Color.Honeydew;
dGReceive.Columns.Add(buttoncolumn);
dGReceive.Columns["rowID"].Visible = false;

موفق باشید.