PDA

View Full Version : سوال: مشکل در خواندن اطلاعات از دیتاگرید و افزودن به آرایه



012132
چهارشنبه 25 تیر 1393, 00:54 صبح
سلام . من یه دیتاگرید دارم و می خوام از توش اطلاعات ستون 5 ام اش رو بخونم و بریزم توی ی آرایه و به یک لیست باکس اضافه کنم .

لطفاً راهنماییم کنید که چیکار باس کنم ؟؟

group45
چهارشنبه 25 تیر 1393, 01:08 صبح
با سلام
datagidview1.selectedrow[?].selectedcell[?].value.tostring
مقدار بالا رو تو یه متغیر استرینگ بریزید

khokhan
چهارشنبه 25 تیر 1393, 01:27 صبح
سلام . من یه دیتاگرید دارم و می خوام از توش اطلاعات ستون 5 ام اش رو بخونم و بریزم توی ی آرایه و به یک لیست باکس اضافه کنم :لبخند:.

لطفاً راهنماییم کنید که چیکار باس کنم:لبخند: ؟؟

.................................................. ....


using System;using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;


namespace dgv_to_arrye
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private void button1_Click(object sender, EventArgs e)
{
ArrayList col1Items = new ArrayList();
ArrayList col2Items = new ArrayList();


foreach (DataGridViewRow dr in dataGridView1.Rows)
{
col1Items.Add(dr.Cells[0].Value);
col2Items.Add(dr.Cells[1].Value);
}
listBox1.DataSource =col1Items;
listBox2.DataSource = col2Items;
}


private void Form1_Load(object sender, EventArgs e)
{
DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Drug", typeof(string));
for (int i = 0; i < 20; i++)
{
DataRow newplannning = table.NewRow();
newplannning["Dosage"] = i;
newplannning["Drug"] = "mala" + i;
table.Rows.Add(newplannning);
}
dataGridView1.DataSource = table;
}
}
}

012132
چهارشنبه 25 تیر 1393, 02:13 صبح
ممنون از khokhan (http://barnamenevis.org/member.php?131732-khokhan) بخاطر پاسخ خیلی خوبتون . من یه مشکل دیگه برام پیش اومده . من با استفاده از این داده ها می خواستم که چارت رسم کنم . کدی که نوشتم این بود ، ولی این داده ها رو خطا می گیره :


ArrayList colItems1 = new ArrayList();
ArrayList colItems2 = new ArrayList();

chart1.Palette = ChartColorPalette.Light;
chart1.Titles.Clear();
chart1.Titles.Add(Properties.Settings.Default._Use rname + " " + "نمودار پیشرفت آزمون های کاربر");
chart1.Series.Clear();
Series nemodar = new Series("نمودار");
nemodar.ChartType = SeriesChartType.Column;
foreach (DataGridViewRow dr in dataGridView1.Rows)
{
colItems1.Add(dr.Cells[6].Value);
colItems2.Add(dr.Cells[2].Value);
}
nemodar.Points.AddXY(colItems2, colItems1);

chart1.Series.Add(nemodar);

خطی که قرمز شده رو خطا میگیره و میگه که این نوع قابل قبول نیست . حالا با این اوصاف چطور باید داده ها رو واکشی کنم و به این قسمت بفرستم ؟؟

abbas.oveissi
چهارشنبه 25 تیر 1393, 02:37 صبح
میتونستی مستقیم توی foreach همون مقادیر رو با AddXY توی نمودار نشون بدی.نیاز به این نبود توی یک ArrayList بریزی و بعد همچین کاری بکنید.

khokhan
چهارشنبه 25 تیر 1393, 03:07 صبح
خطی که قرمز شده رو خطا میگیره و میگه که این نوع قابل قبول نیست . حالا با این اوصاف چطور باید داده ها رو واکشی کنم و به این قسمت بفرستم:لبخند::متفکر:

.................................................. ..................

private void button3_Click(object sender, EventArgs e) {
ArrayList xvals = new ArrayList();
ArrayList yvals = new ArrayList();
foreach (DataGridViewRow dr in dataGridView1.Rows)
{
xvals.Add(dr.Cells[0].Value);
yvals.Add(dr.Cells[1].Value);
}


chart1.Series["Series1"].Points.DataBindXY(xvals, yvals);
chart1.Palette = ChartColorPalette.Light;
chart1.Titles.Clear();
chart1.Titles.Add("نمودار پیشرفت آزمون های کاربر");
//chart1.Series.Clear();
Series nemodar = new Series("نمودار");
nemodar.ChartType = SeriesChartType.Column;
}
}

012132
چهارشنبه 25 تیر 1393, 10:16 صبح
ممنون دوست عزیز از راهنمایی خوبتون . فقط یه سوال برام پیش اومده . برای محور y ها می خوام که زیر هر نمودارش ، مقدار xvalue رو بزنه .
وقتی کد بالا رو نوشتم ، داده ها رو میخونه و همه چیزش هم درست و کامله . اما برای هر 6 نمودار یک لیبل میزنه ، به نوعی هر 6 تا رو توی یک دسته قرار میده . چطور باید کاری کنم که برای هر ستون حتی اگه تکراری هم بود ، مقدار Xvalue رو بعنوان لیبل زیر هر ستون بنویسیه ؟؟
عکس هم ذخیره کردم تا بهتر منظورمو برسونم :

121160

khokhan
چهارشنبه 25 تیر 1393, 18:51 عصر
ممنون دوست عزیز از راهنمایی خوبتون . فقط یه سوال برام پیش اومده . برای محور y ها می خوام که زیر هر نمودارش ، مقدار xvalue رو بزنه .
وقتی کد بالا رو نوشتم ، داده ها رو میخونه و همه چیزش هم درست و کامله . اما برای هر 6 نمودار یک لیبل میزنه ، به نوعی هر 6 تا رو توی یک دسته قرار میده . چطور باید کاری کنم که برای هر ستون حتی اگه تکراری هم بود ، مقدار Xvalue رو بعنوان لیبل زیر هر ستون بنویسیه ؟؟
عکس هم ذخیره کردم تا بهتر منظورمو برسونم :



باسلام
اگه می خوای تمام گزینه ها در سری x یا همون سری افقی نشون داده بشه این تکه کد رو به کدهای مربوط به چارت اضافه کن




chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;



121179