سوال در رابطه با کلاس SqlCommandBuilder

سلام وقت همگی به خیر
عزیزان میخواستم بپرسم که آیا کلاس SqlCommanBuilder نمی تونه دستورات Insert, Update, Delete رو برای دیتاستی که محتویات یک جدولش از جوین چند جدول پایه تشکیل شده، مدل سازی کنه ؟
آخه من توو برنامم یه Select زدم که اطلاعاتش رو از چند تا جدول استخراج می کنه، بعدش نتیجش رو که داخل یک جدول از Dataset قرار داره، بایند کردم به دیتاگریدویو و بعد از اعمال یک سری تغییرات
وقتی میخوام با SqlCommandBuilder تغییرات دیتاست رو در پایگاه داده ثبت کنم این ارور رو میده :
Dynamic SQL generation is not supported against multiple base tables​
از معنی ارور پیداست که نمی تونه واسه جدول های چندپایه مدل سازی کنه...
من تا حالا با این روش کار نکردم و همیشه خودم با کوئری مستقیم ویرایش کردم واسه همین اطلاعات زیادی راجع بهش ندارم، اما میخوام با ترکیب این دو مدل کدهام رو بهینه تر کنم
میخواستم ببینم راهی نیست که بشه برای وقتایی که اطلاعات یک جدول دیتاست از جوین چند جدول تشکیل شده هم به کمک کلاسی کوئری ها رو مدل سازی کرد ؟
ببخشید متنم خیلی طولانی شد...
خیلی ممنون
 
آخرین ویرایش:

the_king

مدیرکل انجمن
سلام وقت همگی به خیر
عزیزان میخواستم بپرسم که آیا کلاس SqlCommanBuilder نمی تونه دستورات Insert, Update, Delete رو برای دیتاستی که محتویات یک جدولش از جوین چند جدول پایه تشکیل شده، مدل سازی کنه ؟
آخه من توو برنامم یه Select زدم که اطلاعاتش رو از چند تا جدول استخراج می کنه، بعدش نتیجش رو که داخل یک جدول از Dataset قرار داره، بایند کردم به دیتاگریدویو و بعد از اعمال یک سری تغییرات
وقتی میخوام با SqlCommandBuilder تغییرات دیتاست رو در پایگاه داده ثبت کنم این ارور رو میده :
Dynamic SQL generation is not supported against multiple base tables​
از معنی ارور پیداست که نمی تونه واسه جدول های چندپایه مدل سازی کنه...
من تا حالا با این روش کار نکردم و همیشه خودم با کوئری مستقیم ویرایش کردم واسه همین اطلاعات زیادی راجع بهش ندارم، اما میخوام با ترکیب این دو مدل کدهام رو بهینه تر کنم
میخواستم ببینم راهی نیست که بشه برای وقتایی که اطلاعات یک جدول دیتاست از جوین چند جدول تشکیل شده هم به کمک کلاسی کوئری ها رو مدل سازی کرد ؟
ببخشید متنم خیلی طولانی شد...
خیلی ممنون

درست متوجه شده اید، کلاس SqlCommandBuilder برای دستورات تک جدولی طراحی شده و قابلیت کار با چندین جدول رو نداره.
طبیعتا اگر یکی از کلاس های ساخته شده برای یک جدول رو تغییر دهید، CommandText ها رو دستی ویرایش کنید و فیلد های سایر جداول رو اضافه کنید، کلاس حاصل با Join کردن چندین جدول کار خواهد کرد، اما
به هر حال این حاصل کد نویسی دستی شما است، خروجی طبیعی و خودکار نخواهد بود.
 
درست متوجه شده اید، کلاس SqlCommandBuilder برای دستورات تک جدولی طراحی شده و قابلیت کار با چندین جدول رو نداره.
طبیعتا اگر یکی از کلاس های ساخته شده برای یک جدول رو تغییر دهید، CommandText ها رو دستی ویرایش کنید و فیلد های سایر جداول رو اضافه کنید، کلاس حاصل با Join کردن چندین جدول کار خواهد کرد، اما
به هر حال این حاصل کد نویسی دستی شما است، خروجی طبیعی و خودکار نخواهد بود.

خیلی ممنونم، من این سوال رو چند جا مطرح کردم اما تنها کسی که متوجه منظورم شد شما بودید
متشکرم
 

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

بالا