PDA

View Full Version : نمونه كد عملي پايگاه داده سرور كلاينت



sekhavat
جمعه 15 شهریور 1387, 00:03 صبح
سوال اول :
فرض كنيد 10 کامپیوتر داریم. كامپيوتر شماره یک با آدرس 192.168.0.1 است و برنامه اصلی روی آن نصب شده است ، در این برنامه یک پایگاه داده وجود دارد که برنامه بدون هیچ مشکلی با آن کار می کند. حالا در 9 کامپیوتر باقیمانده برنامه را نصب می کنیم ، مسلماً احتیاجی به پایگاه داده ندارند و فقط باید به پایگاه داده سرور(192.168.0.1) متصل شوند. وقتی برنامه ای بدین گونه نوشته می شود باید کاربر سیستم سرور را انتخاب و برنامه را روی آن نصب کند و سپس بر روی دیگر کامپیوتر ها برنامه کلاینت نصب شود. مشکل اینجاست که برنامه سرور به راحتی به بانک اطلاعاتی وصل می شود اما کلاینت ها به مشکل بر می خورند. بنده چندین مورد سعی کردم که مشکل را بر طرف کنم و انواع Connection String ها را بررسی کردم ولی مشکل برطرف نشد! حالا راه حل شما برای بر طرف کردن این مشکل چیست؟
من از VB.Net 2008 و Sql Server 2005 استفاده می کنم.
در چندین برنامه مختلف دیده ام که این مشکل را حل کرده اند . در ضمن فرض كنيد كاربر از برنامه نويسي سر رشته اي ندارد و فقط توانايي نصب برنامه نوشته شده را دارد ، حالا بصورت عملي و تست شده اگر كسي كدي دارد لطفا ارائه دهد.

سوال دوم :

در یک برنامه دات نت ، اولین بار که به بانک اطلاعاتی (Sql Server 2005) وصل می شویم ، حدود 10 تا 15 ثانیه برای اینکار زمان صرف می شود ، اما از بار دوم به بعد در مینیمم ثانیه این اتفاق می افتد ! در برنامه هایی شاهد بوده ام که با پیام "در حال اتصال به بانک اطلاعاتی" و سپس نمایش یک میله پیشرفت این مشکل را حل می کنند که بنظر من راه حل مطلوبی نیست. ولی در بعضی برنامه هم این مشکل حل شده است و از همان بار اول تاخيري وجود ندارد !!! اگر از این مسئله هم اطلاع دارید ممنون می شوم.


اين هم كد مورد استفاده من :
Public Connection As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DataBase.mdf;Integrated Security=True;User Instance=True")
Connection.Open()
cmdBackup.ExecuteNonQuery()
Connection.Close()

amin_alexi
جمعه 15 شهریور 1387, 18:57 عصر
سلام
فکر کنم اگه در قسمت ConnectionString که نوشتی

Source=.\SQLEXPRESS
به جای " . " یک اسم یا Ip کامپیوتر Server رو بنویسی مشکل حل میشه !
ولی سعی کن یک متغییر باشه که در برنامه در زمان اجرا هر وقت خواستی بشه عوض کنی !