PDA

View Full Version : نسبت دادن ستونی از table به فیلد text مربوط به datagrid



f_naderi
جمعه 03 آذر 1391, 02:53 صبح
سلام من می خوام در هنگام کد نویسی یک سری داده رو استخراج کنم و سه تافیلد دارم کد کالا و نام و گروه حالا من نمی دونم چطور این فیلدهای استخراجی رو به ستونهای grid نسبت بدم
برای کمبو باکس این کد رو نوشتم و جواب داد ولی برای تکست نمی دونم ممنون میشم راهنمایی بفرمایید

DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.DataSource = ds_load1.Tables[0];
col.DisplayMember = ds_load1.Tables[0].Columns["gname"].ToString();
dataGridView1.Columns.Add(col);

f_naderi
جمعه 03 آذر 1391, 14:16 عصر
مرسی این کارو میدونم ولی می خوام از این روش استفاده کنم چون باید برای هر کالا گروه کالا رو هم در کمبوباکس select کنم
این کد این خروجی رو میده در صورتی که من می خوام اطلاعات رو داخل تکست باکس های اضافه شده و گروه کالای مربوط به هر کالا رو هم در کمبو باکس انتخاب کنه

private void show_subkala_Load(object sender, EventArgs e)
{
con.Open();
ds_load1.Clear();
ds_load1.Tables.Clear();
string str = "select gname from goodgroup";
da = new OleDbDataAdapter(str, con);
da.Fill(ds_load1);
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
DataGridViewTextBoxColumn columnDataGridTextBox1 = new DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn columnDataGridTextBox2 = new DataGridViewTextBoxColumn();
col.DataSource = ds_load1.Tables[0];
col.DisplayMember = ds_load1.Tables[0].Columns["gname"].ToString();
dataGridView1.Columns.Add(columnDataGridTextBox1);
dataGridView1.Columns.Add(columnDataGridTextBox2);
dataGridView1.Columns.Add(col);
ds_load.Clear();
ds_load.Tables.Clear();
str = "select code as 'کد کالا',kname as 'نام کالا',gname as 'گروه کالا' from goood,goodgroup where goood.gcode=goodgroup.gcode";
da = new OleDbDataAdapter(str, con);
da.Fill(ds_load);
dataGridView1.DataSource = ds_load.Tables[0];
//columnDataGridTextBox1.DataSource = ds_load.Tables[0];
//columnDataGridTextBox1.DisplayMember = ds_load.Tables[0].Columns["code"].ToString();
//columnDataGridTextBox1.DataSource = ds_load.Tables[0];
//columnDataGridTextBox1.DisplayMember = ds_load.Tables[0].Columns["kname"].ToString();
dataGridView1.Columns[2].ReadOnly = true;
con.Close();
}

plus
جمعه 03 آذر 1391, 15:47 عصر
مشخصه ValueMember مربوط به ستون ComboBox رو باید برابر با نام ستون DataTable ی که بهش دادی بگذاری. اینجا فکر کنم


ds_load1.Tables[0].Columns["gname"].ToString();

میشه.مشخصه DataPropertyName مربوطه ستون ComboBox رو هم باید برابر با نام ستون DataTable ی که به DataGridView دادی بگذاری که ظاهرا اینجا 'گروه کالا' هست.

f_naderi
جمعه 03 آذر 1391, 18:36 عصر
ممنون از راهنمایی تون .
کد رو مینویسم این اررور داده میشه

plus
جمعه 03 آذر 1391, 18:41 عصر
ممنون از راهنمایی تون .
کد رو مینویسم این اررور داده میشه

دقت کنید، ds_load1 بجای ds_load. و این خط رو هم ببرید زیر ... = col.DisplayMember

f_naderi
جمعه 03 آذر 1391, 18:49 عصر
آخه من می خوام با توجه به select دوم یعنی پر شدن ds_load گروه کالا رو select کنه

plus
جمعه 03 آذر 1391, 18:57 عصر
آخه من می خوام با توجه به select دوم یعنی پر شدن ds_load گروه کالا رو select کنه
میدونم.وقتی شما DataSource رو به DataGridView میدین، اگه DataPropertyName ستون رو درست وارد کرده باشین، داده از Grid به سلول ستون داده میشه.ولی باید قبل از اون لیست آیتم های ستون رو از طریق DataSource ستون بهش بدین و همچنین DisplayMember و ValueMember رو درست مقدار دهی کنین.DataPropertyName رو همونطوری که گفتم بدین خط کد رو هم درست کنید امتحان کنین.

f_naderi
جمعه 03 آذر 1391, 19:16 عصر
ممنون از همراهیتون
همونطوری که فرمودید property رو set کردم دیگه اررور نمی ده ولی select هم نمی کنه(البته چون که به ds_load نسبتش ندادم )

Mahmoud.Afrad
جمعه 03 آذر 1391, 19:20 عصر
خطی که خطا داره رو به این صورت بنویس(با توجه به نام ستونی که در دستور سلکت در نظر گرفتی):
col.ValueMember = "گروه کالا";

f_naderi
جمعه 03 آذر 1391, 19:33 عصر
به هیچ صراطی مستقیم نیست

f_naderi
جمعه 03 آذر 1391, 19:44 عصر
اول از همه خدا رو شکر ،دوم از هر دو بزرگوار خیلی خیلی ممنونم
بعد از یک سه روز درست شد