PDA

View Full Version : اضافه کردن داده در gridview بدون ثبت آنها در پایگاه داده



dorna20-30
یک شنبه 03 اردیبهشت 1391, 10:03 صبح
سلام دوستان.
من می خوام یه سری اطلاعات رو از طریق یک button وارد گرید ویو کنم و نمایش بدم بدون آن که این اطلاعات را در پایگاه داده اصلی ثبت کنم.می خوام بدونم همچین چیزی امکان داره؟اگه امکان داره لطفا راهنماییم کنید.ممنون

esiprogrammer
یک شنبه 03 اردیبهشت 1391, 10:21 صبح
ابتدا ستونهاشو باید مشخص کنید.

dataGrid1.Columns.Add("name");
datagrid1.Columns.Add("number");


بعد سطر ها رو add میکنی

datagrid1.Rows.Add("hasan","1");
datagrid1.Rows.Add("hossien","2");


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

arminkhodaei
یک شنبه 03 اردیبهشت 1391, 10:22 صبح
اگر با LINQ آشنا باشید به راحتی این کار امکان پذیره.

فقط کافیه یه شیئ از کلاس Table مورد نظر ایجاد کرده و به فیلد هاش مقدار اختصاص بدید و داخل Datasource گرید ویو بریزید. با این کار وقتی گرید ویو Refresh بشه، داده ها را داخلش میبینید. ولی تا زمانی که Submit نشند وارد Database نمیشند.

dorna20-30
یک شنبه 03 اردیبهشت 1391, 10:53 صبح
ابتدا ستونهاشو باید مشخص کنید.

dataGrid1.Columns.Add("name");
datagrid1.Columns.Add("number");


بعد سطر ها رو add میکنی

datagrid1.Rows.Add("hasan","1");
datagrid1.Rows.Add("hossien","2");


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

موقع اضافه کردن ستونها این خطارو میده

Argument '1': cannot convert from 'string' to 'System.Windows.Forms.DataGridViewColumn'

dorna20-30
یک شنبه 03 اردیبهشت 1391, 10:56 صبح
اگر با LINQ آشنا باشید به راحتی این کار امکان پذیره.

فقط کافیه یه شیئ از کلاس Table مورد نظر ایجاد کرده و به فیلد هاش مقدار اختصاص بدید و داخل Datasource گرید ویو بریزید. با این کار وقتی گرید ویو Refresh بشه، داده ها را داخلش میبینید. ولی تا زمانی که Submit نشند وارد Database نمیشند.

متاسفانه با LINQ آشنایی ندارم

esiprogrammer
یک شنبه 03 اردیبهشت 1391, 11:04 صبح
متاسفانه با LINQ آشنایی ندارم


تیتر یا عنوان ستون رو هم بهش بده

datagrid1.Columns.Add("name","نام");

dorna20-30
یک شنبه 03 اردیبهشت 1391, 11:44 صبح
تیتر یا عنوان ستون رو هم بهش بده

datagrid1.Columns.Add("name","نام");

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

esiprogrammer
یک شنبه 03 اردیبهشت 1391, 12:12 عصر
برای ذخیره اطلاعات روی دیتابیس باید با مفاهیم ADO.net یا Linq آشنایی پیدا کنید.

البته شما چون مبتدی هستید بهتره از ADO.net شروع کنید.
مطلب مفصله نمیشه توضیح داد.
توی تاپیک های سایت بگردید مطالب مفیدی پیدا میکنید.

dorna20-30
یک شنبه 03 اردیبهشت 1391, 12:15 عصر
خانم ها آقایان برنامه نویسان عزیز لطفا اگه می تونید کمک کنید:لبخندساده:

dorna20-30
یک شنبه 03 اردیبهشت 1391, 12:41 عصر
نحوه وارد کردن اطلاعات به دیتابیس رو یاد دارم ولی به صورت تکی.به این صورت که اطلاعات داخل یه کنترل مثل تکست باکس یا کمبو باکس رو از طریق یه باتن وارد دیتابیس کنم.اما کاری که قراره اینجا انجام بدم وارد کردن تمامی اطلاعات موجود در گریدویوه.

Hybrid
یک شنبه 03 اردیبهشت 1391, 21:03 عصر
نحوه وارد کردن اطلاعات به دیتابیس رو یاد دارم ولی به صورت تکی.به این صورت که اطلاعات داخل یه کنترل مثل تکست باکس یا کمبو باکس رو از طریق یه باتن وارد دیتابیس کنم.اما کاری که قراره اینجا انجام بدم وارد کردن تمامی اطلاعات موجود در گریدویوه.

سلام ، اگر با برنامه نویسی بانک آشنایی ندارین از تاپیک زیر میتونین شروع کنید :

ADO.NET در دات نت (http://barnamenevis.org/showthread.php?133060-ADO.NET-%D8%AF%D8%B1-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA)



اگه میخوای اطلاعات داخل دیتاگرید رو به صورت یک جا وارد دیتابیس کنید میتونین دستور insert رو داخل یک حلقه for بزاری

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

روش بالا در صورتی هست که تعداد سطرهای داخل برنامتون در حد معمول هست و نه زیاد اگه اگه تعداد سطر های داخل دیتاگرید ویو خیلی زیاده میتونین از sqlBulkCopy استفاده کنید که در این لینک (http://www.sqlteam.com/article/use-sqlbulkcopy-to-quickly-load-data-from-your-client-to-sql-server) به صورت کامل توضیح داده شده ( با کد سی شارپ) .

موفق باشید

dorna20-30
دوشنبه 04 اردیبهشت 1391, 11:00 صبح
سلام ، اگر با برنامه نویسی بانک آشنایی ندارین از تاپیک زیر میتونین شروع کنید :

ADO.NET در دات نت (http://barnamenevis.org/showthread.php?133060-ADO.NET-%D8%AF%D8%B1-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA)



اگه میخوای اطلاعات داخل دیتاگرید رو به صورت یک جا وارد دیتابیس کنید میتونین دستور insert رو داخل یک حلقه for بزاری

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

روش بالا در صورتی هست که تعداد سطرهای داخل برنامتون در حد معمول هست و نه زیاد اگه اگه تعداد سطر های داخل دیتاگرید ویو خیلی زیاده میتونین از sqlBulkCopy استفاده کنید که در این لینک (http://www.sqlteam.com/article/use-sqlbulkcopy-to-quickly-load-data-from-your-client-to-sql-server) به صورت کامل توضیح داده شده ( با کد سی شارپ) .

موفق باشید
بابت کمکتون ممنون.داده ها رو وارد کردم حالا میخوام این داده هارو به بانک وارد کنم.یه کد نوشتم ببینید صحیحه؟
for (int count = 0; count < dataGridView1.Rows.Count; count++)
{

string ID = dataGridView1.Rows[count].Cells["ID"].Value.ToString();
string namekala = dataGridView1.Rows[count].Cells["namekala"].Value.ToString();
string insertQuery = "insert into detailsprint(ID,name-kala) values('" + ID + "','" + namekala + "')";
con.Open();
OleDbCommand comm = new OleDbCommand(insertQuery, con);
comm.ExecuteNonQuery();
con.Close();
}