PDA

View Full Version : سوال: انتقال اطلاعات از windows form به dataGridView با استفاده از c#,sql server 2008 ,ado.net



nasimsltn7@gmail.com
شنبه 12 فروردین 1391, 14:45 عصر
سلام
من چندین سطر اطلاعات دارم که مخوام اونا رو به datagridview واز datagridview به جدولم در sql بفرستم,در واقع شبیه یک سیستم فروشگاه هستش که چندین قلم جنس رو انتخاب می کنه و بعد اونا در sql انتقال میده .
هر سطر من شامل code,name,price,count هستش.
من در برنامم با استفاده از combobox , میخوام با هر بار انتخاب , item مورد نظرم رو به datagrid بفرستم.
codeرو توی یک متغییر قرار دادم و count و price رو از texbox میگیرم .
میخوام کل item های انتخابی رو توی datagrid نشون بده .
ممنون.

Mahdi1001
شنبه 12 فروردین 1391, 15:45 عصر
سلام
مشکلتون کجاست؟؟؟

Hybrid
شنبه 12 فروردین 1391, 16:05 عصر
سلام ، تاپیکتون تکراری هست ، اول اطلاعات در بانک ثبت میشه بعد در دیتا گرید ویو نمایش داده میشه!

دیتا گرید ویو به منبع داده ای که ما بهش معرفی میکنیم وصل میشه و اطلاعات رو نمایش میده ، همین!

شما میخواین اطلاعات رو Insert کنید ، دستور اینسرت رو بلدین؟ اگه بلدین و از دستورتون اشکال میگیره کد رو قرار بدین تا مشکل رو بر طریف کنیم. اگه هم بلد نیستین داخل همین فروم میتونین تاپیک های جامعی رو در این رابطه گیر بیارین.

nasimsltn7@gmail.com
شنبه 12 فروردین 1391, 17:27 عصر
من هم ی اطلاعات رو دارم اما نحوه ی انتقال به datagrid رو بلد نیستم.
در واقع مثل سیستم یک فروشگاه که مشتری چندین قلم جنس رو انتخاب میکنه ودر پایان کاربر اونا رو save میکنه.
چیزی که من نوشتم اینه:

private void comboBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
listBox1.Items.Add(l1+ ")"+comboBox2.Text + " " + textBox4.Text + " " + textBox5.Text);
ولی با این کدitemهایی که انتخاب میشن رو به listboxمیفرسته ولی من یه کد میخوام که با انتخاب item مورد نظرم رو به datagrid بفرستم.
l1=code ,textbox4=tedad,texbox5=price
من تنها میتونم از sql اطلاعات رو توی datagrid نمایش بدم. ولی با استفاده از texbox و اطلاعات موجود در form بتد نیستم.

nasimsltn7@gmail.com
شنبه 12 فروردین 1391, 17:33 عصر
نه من میتونم اطلاعات رو از sql توی datagridنمایش بدم ولی الان میخوام با انتخاب چند قلم جنس اونا رو توی datagrid نمایش بدم.
و بعد چند record رو توی sql بفرستم .
مثل یک پیتزا فروشی که مشتری توی هر فاکتور میتونه چندین قلم جنس رو انتخاب کنه و اونا رو توی datagrid به نمایش بزاره وسپس insert کنه.

Mahdi1001
شنبه 12 فروردین 1391, 17:36 عصر
منظورتون همینه!!!



object[] ob = new object[4];
ob[0] = price];
ob[1] = tedad];
ob[2] = code ;
dataGridView1.Rows.Add(ob);

Hybrid
شنبه 12 فروردین 1391, 17:43 عصر
دوست عزیز شما به 2 تا Query نیاز دارین :

1 ) Query insert : که عمل ثبت در بانک رو براتون انجام میده.

2 ) Query Select : که اطلاعات رو واستون واکشی میکنه و در دیتا گرید ویو نشون میده.

اگه لازم دارین تا براتون کدش رو بنویسم

nasimsltn7@gmail.com
شنبه 12 فروردین 1391, 18:00 عصر
ممنون بابت کد
object[] ob = new object[4];
ob[0] = price];
ob[1] = tedad];
ob[2] = code ;
dataGridView1.Rows.Add(ob);
من الان با استفاده از همین کد دادهها رو توی datagrid نشون دادم ولی حالا نحوه ی insert رو بلد نیستم که من بر فرض 3record رو با زدن buton به tablam در sql بفرستم ...

nasimsltn7@gmail.com
شنبه 12 فروردین 1391, 18:02 عصر
و اینکه چطور میتونم کنار هر سطر datagrid یک chekbox قرار بدم؟تا اونایی رو که tik نخوردن رو insert نکنم .
ممنون

Mahdi1001
شنبه 12 فروردین 1391, 18:10 عصر
یه راه ساده اینه که یه ستون اضافه کنید از نوع chekbox و وقتی می خواین در پایگاه ذخیره کنین با یه حلقه فور چک کنید هر کدام انتخاب شده بود را ذخیره کنید.

nasimsltn7@gmail.com
شنبه 12 فروردین 1391, 18:18 عصر
اگه لازم دارین تا براتون کدش رو بنویسم

بله اگه میشه کد رو بنویسید چون تا حالا از datagrid بهsql چیزی رو insert نکردم.

nasimsltn7@gmail.com
شنبه 12 فروردین 1391, 18:25 عصر
اگه لازم دارین تا براتون کدش رو بنویسم
بله اگه میشه کد رو بنویسید چون تا حالا از datagrid به sql هیچ چیز رو insert نکردم .
ممنون.

Mahdi1001
شنبه 12 فروردین 1391, 18:34 عصر
کار سختی نیست.
یه حلقه بنویسین داخل حلقه با این دستور :


dataGridView1.Rows[RowIndex].Cells[CellIndex].Value.ToString();

هر سطر رو چک کنید اگر چک باکس انتخاب شده بود، سطر مورد نظر رو در پایگاه ذخیره کنید.

nasimsltn7@gmail.com
شنبه 12 فروردین 1391, 22:33 عصر
توضیح بیشتری میخوام چون در زمینه ی انتقال داده ها از datagrid به sql هیچ پیش زمینه ای ندارم .
نمیدمونم از این کدی که دادید چطور استفاده کنم.

Mahdi1001
شنبه 12 فروردین 1391, 22:53 عصر
int i;
string value = "";
for (i = 0; i < dataGridView1.Rows.Count; i++)
{
value="('"+ dataGridView1.Rows[i].Cells[0].Value.ToString()+"' ,";
value+="'"+ dataGridView1.Rows[i].Cells[1].Value.ToString()+"' ,";
value+="'"+ dataGridView1.Rows[i].Cells[2].Value.ToString()+"')";

queryInsert = "insert " + tableName + " values " + value;
SqlCommand insCmd = new SqlCommand(queryInsert, connction);
insCmd.ExecuteNonQuery();
}

linux
شنبه 12 فروردین 1391, 23:29 عصر
اگه لازم دارین تا براتون کدش رو بنویسم

بله اگه میشه کد رو بنویسید چون تا حالا از datagrid بهsql چیزی رو insert نکردم.

بهتر هست وقت بگذاری و در مورد ado.net کاملا مطالعه کنید.

nasimsltn7@gmail.com
شنبه 12 فروردین 1391, 23:40 عصر
ممنون مرسی بابت کد , کمک خیلی بزرگی کردیدن.

nasimsltn7@gmail.com
شنبه 12 فروردین 1391, 23:48 عصر
int i;
string value = "";
for (i = 0; i < dataGridView1.Rows.Count; i++)
{
value="('"+ dataGridView1.Rows[i].Cells[0].Value.ToString()+"' ,";
value+="'"+ dataGridView1.Rows[i].Cells[1].Value.ToString()+"' ,";
value+="'"+ dataGridView1.Rows[i].Cells[2].Value.ToString()+"')";

queryInsert = "insert " + tableName + " values " + value;
SqlCommand insCmd = new SqlCommand(queryInsert, connction);
insCmd.ExecuteNonQuery();
}


ممنون مرسی بابت کد , کمک خیلی بزرگی کردیدن.