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

saeedasp

Member
سلام یه برنامه میخوام طراحی کنم که از جدول منبع بخونه که دارای سه فیلد نام ، حدود آموزش و پیشرفت است
و در جدول دیگر که دارای چندین فیلد که همچنین دارای فیلد های تاریخ، نام 1، حدود آموزش1 و پیشرفت 1 است بنویشد بشرط اینکه اگر نام 1 ، پیشرفت1 و حدود آموزش 1 خالی بود و پیشرفت 2وحدود آموزش2 و نام2 و پیشرفت3وحدود آموزش3 و نام3 هم نام با سطر اول جدول منبع نبود آنرا وارد کند اگر هم نام 1 ، پیشرفت1 و حدود آموزش 1 پر بود برود با توجه به شرطی که گفته شد اگر پیشرفت 2وحدود آموزش2 و نام2 خالی بود در آن وارد و اگر نبود در پیشرفت3وحدود آموزش3 و نام3 وارد کند
اگر هم پر بودند برود در سطر جدید که تاریخ دیگری است از ابتدا دوباره نام ها و پیشرفت ها را از نظر خالی بودن و تکراری نبودن در همان سطر چک کند

راه حلی درست به ذهنم نمیرسد لطفا کمک کنید تا مشکلم حل شود
 

saeedasp

Member
این مشکل حل شد تا حدودی !

فقط الان مشکلی که هست اینه که من فقط میتونم
نام 1، حدود آموزش1 و پیشرفت 1 رو پر کنم و بقیه میره تاریخ بعدی در نام 1، حدود آموزش1 و پیشرفت 1 ثبت میشه در صورتی که میخوام اون در پیشرفت 2وحدود آموزش2 و نام2 و مقدار تاریخ بعدی هم تو یشرفت3وحدود آموزش3 و نام3 ذخیره شه!
کد:
DataTable ManbaTable = new DataTable

کد:
sqldataadapter da = new sqldataadapter("SELECT * FROM manba",con)
[/COLOR][/RIGHT]
کد:
da.Fill(manbaTable)
کد:
foreach(DataRow row in manbaTable.Rows)
{sqlcommand  cmd= new sqlcommand("Update barname SET pishrafte1=@pishraft,hodud1=@hodud,name1=@nam",con)
cmd.parameters.AddWithValue("@pishraft",row["pishraft"]);
cmd.parameters..AddWithValue("@hodud",row["hodud"]);
و ....
}

این قطعه کد فقط میاد همون یه سطر رو میریزه تو سطر اول دوم و ....! در صورتی که من میخوام 3جای خالیمو تو جدول بوسیله سه سطر جدول اول پر شه
زاهنمایی کنین دوستان چیکار میشه کرد
 

the_king

مدیرکل انجمن
کد:
foreach(DataRow row in manbaTable.Rows)
{sqlcommand  cmd= new sqlcommand("Update barname SET pishrafte1=@pishraft,hodud1=@hodud,name1=@nam",con)
cmd.parameters.AddWithValue("@pishraft",row["pishraft"]);
cmd.parameters..AddWithValue("@hodud",row["hodud"]);
و ....
}

این قطعه کد فقط میاد همون یه سطر رو میریزه تو سطر اول دوم و ....! در صورتی که من میخوام 3جای خالیمو تو جدول بوسیله سه سطر جدول اول پر شه
زاهنمایی کنین دوستان چیکار میشه کرد

این pishrafte1 و hodud1 و name1 اسم فیلد های شما هستند، اگر قراره فیلد های دیگری مثل pishrafte2 و hodud2 و name2 یا pishrafte3 و hodud3 و name3 هم
داشته باشید شیوه طراحی جدول تان اشتباه است، جدول شما که قرار نیست یک سطری و تعداد Field هایش متغیر باشه؟ اصولا باید چند سطر با تعداد فیلد ثابت داشته باشه.
صرفا سه فیلد pishrafte و hodud و name لازم است، در بدترین شرایط یک فیلد دیگر مثل index هم اضافه کنید تا
شماره سطر مورد نظر را (مثلا 1، 2، 3) را مشخص کند و index را به عنوان کلید اصلی در نظر بگیرید.

ایراد از دستور Update barname SET است، این Update شرط WHERE نداره، به همین جهت هر بار که اجرا بشه در تمامی سطر های barname
مقدار سه ستون pishrafte1 و hodud1 و name1 رو به یک مقدار خاص تبدیل می کنه.
 

جدیدترین ارسال ها

بالا