PDA

View Full Version : سیستم سه لایه - اجرای دستورات sql با یک کانکت



Mrs.Net
پنج شنبه 10 آبان 1386, 20:25 عصر
فرض کنید 10 ردیف اطلاعات دارم که میخوام داخل بانک اضافه کنم (یا ویرایش کنم)
تو یک سیستم سه لایه اون دستور sql چجوری میشه؟
تا الان تو کلاس دیتام یک تابع داشتم که کانکشن ایجاد میکرد و دستور sql که میگرفت اجرا میکرد و کانکشن میبست
اما الان برای این 10 مورد 10بار کانکت میکنه و میبنده. روش درست چجوریه؟
خیلی ممنون

PC2st
پنج شنبه 10 آبان 1386, 21:16 عصر
یک روش مناسبش اینه که از دستور SqlDataAdapter.Update استفاده کنیم.

bpzone
پنج شنبه 10 آبان 1386, 21:36 عصر
میشه کمی بیشتر توضیح بدید ؟
اکه یک نمونه کد بذارید که واقعآً لطف می کنید ...

Mrs.Net
پنج شنبه 10 آبان 1386, 22:34 عصر
یک روش مناسبش اینه که از دستور SqlDataAdapter.Update استفاده کنیم.
من که از بیندینگ استفاده نکردم
میشه از بیندینگ استفاده نکرد و از update استفاده کرد؟ اگه آره پس
برای استفاده از update وقتی یک دیتاست منیج شده نداریم حداقل چیزهایی که باید تعریف کنیم چی هست؟

اَرژنگ
جمعه 11 آبان 1386, 02:22 صبح
فرض کنید 10 ردیف اطلاعات دارم که میخوام داخل بانک اضافه کنم (یا ویرایش کنم)
تو یک سیستم سه لایه اون دستور sql چجوری میشه؟
تا الان تو کلاس دیتام یک تابع داشتم که کانکشن ایجاد میکرد و دستور sql که میگرفت اجرا میکرد و کانکشن میبست
اما الان برای این 10 مورد 10بار کانکت میکنه و میبنده. روش درست چجوریه؟
خیلی ممنون
به جایه اینکه بهش یک استرینگ اس.کیو.ال پاس بدید، یک


List<string>

و یا


List<SqlCommand>

پاس بدید.

PC2st
جمعه 11 آبان 1386, 11:12 صبح
اکه یک نمونه کد بذارید که واقعآً لطف می کنید ...
در اینجا یک نمونه برنامه هست (http://barnamenevis.org/forum/attachment.php?attachmentid=10557&d=1188218224) اما بصورت معماری 3 لایه نیست (زیاد فرقی نمیکنه و میتونید دستورات رو در لایه مورد نظر کپسوله کنید).


میشه از بیندینگ استفاده نکرد و از update استفاده کرد؟
متاسفانه نمیشه و روشی که آرژنگ گفتند مناسب است (آرایه ای بفرستید با مشخصات رکوردها).

Mrs.Net
جمعه 11 آبان 1386, 12:15 عصر
در اینجا یک نمونه برنامه هست (http://barnamenevis.org/forum/attachment.php?attachmentid=10557&d=1188218224) اما بصورت معماری 3 لایه نیست (زیاد فرقی نمیکنه و میتونید دستورات رو در لایه مورد نظر کپسوله کنید).
این برنامه شما تو حالتی که بانک از یک فولدر شیر (شبکه) استفاده بشه هم درست کار میکنه؟

PC2st
جمعه 11 آبان 1386, 13:17 عصر
با کارهای شبکه ای آشنا نیستم... اما اگر بتوانید Connection String رو تنظیم کنید (به Database متصل بشید)، نباید مشکلی وجود داشته باشد.

اَرژنگ
جمعه 11 آبان 1386, 14:34 عصر
من که از بیندینگ استفاده نکردم
میشه از بیندینگ استفاده نکرد و از update استفاده کرد؟ اگه آره پس
برای استفاده از update وقتی یک دیتاست منیج شده نداریم حداقل چیزهایی که باید تعریف کنیم چی هست؟
من نمیدونم بایندینگ چه ربطی به آپدیت کردن داره.
منظورتان از "حداقل چیزهایی که باید تعریف کنیم " چی هست؟ شما با بیزینس ابجکتس مگر کار نمیکنید؟ در لایه نمایش بیزینس ابجکتها را نمایش بدید و در لایه داتابیس از داتا بیس بگیرید و ثبت کنید.

Mrs.Net
جمعه 11 آبان 1386, 17:26 عصر
من نمیدونم بایندینگ چه ربطی به آپدیت کردن داره.
منظورتان از "حداقل چیزهایی که باید تعریف کنیم " چی هست؟ اینو جواب آقای PC2st.ir دادم.

شما با بیزینس ابجکتس مگر کار نمیکنید؟ در لایه نمایش بیزینس ابجکتها را نمایش بدید و در لایه داتابیس از داتا بیس بگیرید و ثبت کنید. همینکارو میکنم و برای همین گفتم که بیندینگ ندارم.

Mrs.Net
جمعه 11 آبان 1386, 23:59 عصر
به نظرم روش جناب اَرژنگ بهترین روش باشه
کسی روش دیگه ای نداره؟