PDA

View Full Version : سوال: ارسال گروهی از دینا گرید به دیتابیس



mahdad sepah
دوشنبه 16 مرداد 1391, 14:12 عصر
با سلام خدمت دوستان عزیز
من در برنامه ام باید فاکتور صادر کنم،برنامه به صورتی است که ابتدا اقلام خواسته شده به صورت موقت در گرید ذخیره می شود سپس بعد از زذن دکمه صدور تمامی اقلام وارد دیتا بیس می شود.من دنبال این کد میگردم چند تایی پیدا کردم ولی موفق نشدم:ناراحت:ممنون میشم کمکم کنید

mahdad sepah
دوشنبه 16 مرداد 1391, 15:39 عصر
کسی نمیدونه؟

mahdad sepah
دوشنبه 16 مرداد 1391, 17:55 عصر
کسی نیست؟؟؟؟
خیلی کارم گیره:افسرده:

irana8
دوشنبه 16 مرداد 1391, 18:50 عصر
با سلام خدمت دوستان عزیز
من در برنامه ام باید فاکتور صادر کنم،برنامه به صورتی است که ابتدا اقلام خواسته شده به صورت موقت در گرید ذخیره می شود سپس بعد از زذن دکمه صدور تمامی اقلام وارد دیتا بیس می شود.من دنبال این کد میگردم چند تایی پیدا کردم ولی موفق نشدم:ناراحت:ممنون میشم کمکم کنید
من ابتدا در لیست باکس قرار میدم و سپس اقدام به ثبت در دیتا بیس میکنم.بهتره یه list تعریف کنی و مقدار را در لیست وارد کنی بعد اقدام به save کردن کنی.

mahdad sepah
دوشنبه 16 مرداد 1391, 18:55 عصر
میشه نمونه کد برام بگذارید؟
ویک سوال دیگر من تو لیست باکس میتونم چندتا ستون داشته باشم؟چون من باید اسم کالا،تعداد و قیمت آن را داشته باشم و تازه بتونم قیمت ستون ها را جمع کنم

ali_habibi1384
دوشنبه 16 مرداد 1391, 19:10 عصر
يك حلقه for بذار به ازاي همه سطرهاي گريدت عمل Insert رو يكبار انجام بده:


for (int i=0;i<dgv.rows.count;i++)
نوشتن كد inesert

Farshid007
دوشنبه 16 مرداد 1391, 19:15 عصر
منم یه نرم افزار صدور فاکتور ساختم!
همینجوری 1000 تا هم اینسرت کنی مشکل نداره
چون تست کردم!

mahdad sepah
دوشنبه 16 مرداد 1391, 19:28 عصر
خب میتونید نمونه کدش را بگذارید به خدا از صبح دارم کلنجار میرم دیگه مغزم کار نمیکنه
من با entity دارم کار می کنم اون کد هایی که پیدا کردم متاسفانه در آخرین کد که save هست ارور میده
ممنونتان میشم راهنماییم کنید

veniz2008
دوشنبه 16 مرداد 1391, 19:29 عصر
يك حلقه for بذار به ازاي همه سطرهاي گريدت عمل Insert رو يكبار انجام بده:


for (int i=0;i<dgv.rows.count;i++)
نوشتن كد inesert

من قبلا این سوال واسم پیش اومده بود وقتی جستجو کردم بعضی از دوستان میگفتن این روش بهینه نیست. مثلا اگر 1000 تا رکورد درون گرید باشه باید هزار بار به دیتابیس وصل شد و عمل درج رو انجام داد. واسه همین پیشنهاد میدادن که مثلا کلید هر سطر رو داخل یک متغیر رشته ای ذخیره کنیم و بعدش خارج از حلقه با یک بار وصل شدن به دیتابیس این هزار رکورد رو درج کنیم. به نظر شما روش بهینه کدومه؟

mahdad sepah
دوشنبه 16 مرداد 1391, 19:37 عصر
foreach (DataGridViewRow row in dataGridView1.Rows)
{
string Name = row.Cells["Name"].Value.ToString();
int GheymateKol = int.Parse(row.Cells["price"].Value.ToString());
int tedad = int.Parse(row.Cells["Tedad"].Value.ToString());
tbl_Sefaresh tsg = new tbl_Sefaresh();


tsg.Name = Name;
tsg.Tedad = tedad;

tsg.MablagheVahed = GheymateKol;
tsg.MablagheKol = GheymateKol;
db.AddTotbl_Sefaresh(tsg);
db.SaveChanges();

}
من با این کد دارم کار میکنم یک برنامه هم دارم که داره با این روش کار می کنه ولی نمیدوم چرا اینجا جواب نمیده البته اون برنامه ای که دارم با linqهست من با enttyنوشتم واقعا گیج شدم دیگه

ali_habibi1384
دوشنبه 16 مرداد 1391, 21:26 عصر
من قبلا این سوال واسم پیش اومده بود وقتی جستجو کردم بعضی از دوستان میگفتن این روش بهینه نیست. مثلا اگر 1000 تا رکورد درون گرید باشه باید هزار بار به دیتابیس وصل شد و عمل درج رو انجام داد. واسه همین پیشنهاد میدادن که مثلا کلید هر سطر رو داخل یک متغیر رشته ای ذخیره کنیم و بعدش خارج از حلقه با یک بار وصل شدن به دیتابیس این هزار رکورد رو درج کنیم. به نظر شما روش بهینه کدومه؟

درسته هركس يه راهي رو استفاده ميكنه. منظورتون اينه كه دستور insert رو توي يه متغير رشته اي بريزيم و همه شو پاس بديم به اس كيو ال؟
البته اينجوري هم بازهم اس كيو ال اگر 1000 تا insert باشه بايد انجام بده فقط از نظر مدام وصل شدنش روش شما بهينه تره.فقط درصد خطا رو موقع ساخت رشته بيشتر ميكنه.

mahdad sepah
دوشنبه 16 مرداد 1391, 22:57 عصر
کسی نمونه کد نداره؟

ali_habibi1384
دوشنبه 16 مرداد 1391, 23:32 عصر
کسی نمونه کد نداره؟
اين مونه كد با حلقه forهست كه گفته بودم:


for (int i = 0; i < dgKhadamat.Rows.Count; i++)
{
if (refGhalamFaktorKhadamat.Insert(IdFaktor, dgKhadamat["IdKhadamat", i].Value.ToString(), dgKhadamat["Price", i].Value.ToString()) == 0)
{
MessageBox.Show("خطا در ثبت سروسيهاي انجام شده", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}


dgKhadamat=ديتاگريد
اشاره گر به كلاس براي Insert در لايه Dalهست=refGhalamFaktorKhadamat
متغيرهاي درون تابع Insert از كلاس هم درون تابع Insert نوشم

mahdad sepah
سه شنبه 17 مرداد 1391, 00:03 صبح
ممنون از راهنماییتون ولی با Entityانجام میدم نمیشه