سلام.وقت بخیر استاید محترم .اقا من دو تا جدول دارم با فیلدهای مثل هم.میخوام این دوتا جدول باهم ادغام بشه و این دوتا شرط را داشته باشه و داخل دیتا اداپتور بشینه. عکس الصاق شده برای یک جدول هست.همین کویری فقط از دو جدول گرفته بشه.ممنون Untitled.png
سلام.وقت بخیر استاید محترم .اقا من دو تا جدول دارم با فیلدهای مثل هم.میخوام این دوتا جدول باهم ادغام بشه و این دوتا شرط را داشته باشه و داخل دیتا اداپتور بشینه. عکس الصاق شده برای یک جدول هست.همین کویری فقط از دو جدول گرفته بشه.ممنون Untitled.png
سلام و روز خوش میتونین SELECTها رو با هم UNION کنین. و البته این که این روش کوئری نوشتن خوب نیست! همه مقادیر رو باید به عنوان پارامتر پاس کنین.
سلام.سپاس
از یک روش دیگه میشه انجام داد.من دو تا دیتا اداپتور تعریف کردم و کوئری هر یک از جدولاها رو به دیتا اداپتور دادم و داخل دیتا تیبل ریختم.نکته اینکه وقتی اطلاعات دیتا اداپتور اول را داخل دیتا تیبل ریختین بعد اطلاعات دیتا اداپتور دوم را میریزید اطلاعات اول پاک نمیشه.یعنی به دیتا تیبل اضافه میشه و مشکل من حل شد
سلام دوباره
خب شما در بخش SQL پرسش رو مطرح کردین
و این یعنی پاسخ هم باید متناسب با همین باشه.
برای روشنتر شدن موضوع:
کار با دیتا میتونه در سطح دیتابیس باشه (همه کارهایی که با کدهای TSQL روی table ها انجام میدین)
یا در سطح اپلیکیشن (کدهایی که در سی شارپ (یا هر زبان دیگه و در هر محیطی) برای کار روی datatable ها و list ها و ... مینویسین).
وقتی صحبت از ترکیب نتایج در سطح دیتابیس میشه، این ترکیب میتونه در سطح رکورد باشه (UNION, EXCEPT, INTERSECT, DISTINCT معروف به Set Operations) - مثل همین پرسش
یا در سطح فیلد باشه (انواع JOIN)
یا ترکیب اینها باشه (مثل CROSS JOIN)
یا کارهای پیچیده تر (مثل APPLY)
و ...
اینها که گفته شد همگی در لایه دیتابیس (MS SQL ، MySQL ، ...) مستقیما قابل انجامه
ولی در لایه برنامه باید از LINQ استفاده کنین
و پیاده سازی بعضی از اینها به نسبت پیچیده تر هست.
هر کدوم اینها مزایا و معایب خودش رو داره
و این که کدوم روش پیاده بشه بستگی به شرایط داره،
ولی قانون کلی اینه اگر تعداد رکوردها و اندازه دیتا کم هست و همزمانی هم نیست (یک کاربره)
خب اینها دیگه چندان تفاوتی ایجاد نمیکنه - البته پارامترها فقط همین ها هم نیست،
ولی اگر این شرایط نباشه حتما باید در لایه دیتابیس انجام بشه،
یا این که بخش فیلتر و join و aggregate در لایه دیتابیس انجام بشه ولی پردازش نهایی و شکل دادن دیتا در اپلیکیشن.
========
حالا با این مقدمات برمیگردیم به پرسش:
این روشی که برای append دیتا به دیتاتیبل استفاده شده یک حالت خیلی خاص از ساده ترین وضعیت هست و برای همین ایرادش مشخص نمیشه،
اگر رکورد تکراری در این 2 (یا چند) جدول باشه دیگه تشخیص و کنار گذاشتنش بدون کدنویسی اضافه شدنی نیست.