ورود

View Full Version : گفتگو: نحوه صحیح وصل شدن به دیتابیس



svm-webmaster
دوشنبه 08 مهر 1387, 21:15 عصر
با سلام خدمت تمامی دوستان،
من برای وصل شدن به دیتابیس به این روش عمل می کنم. ابتدا در web.config کانکشن خود را ایجاد می کنم و سپس در کد ها به این کانکشن وصل می شوم. برای کانکشن ها و ... هم در ابتدای صفحه یک بار تعریف می کنم و در صفحه جاری استفاده می کنم.
سوال من این است که آیا از لحاط فنی تعریف کانکشن ها و ... در ابتدای هر صفحه درست است و یا می توان انها را نیز یک بار تعریف کرد و در تمامی صفحات استفاده نمود.
اگر درست است ، لطفا روش تعریف و استفاده آن را توضیح دهید و اگر درست نیست دلایلش را ذکر فرمایید.
با تشکر
موفق باشید

kezack
دوشنبه 08 مهر 1387, 21:48 عصر
بهتره انها را نیز یک بار تعریف کرد و در تمامی صفحات استفاده نمود. جون اينجوري اكه فرضا connectionstring عوض شه يا ديتابيست... در اين صورت بايد كل صفحات رو connectionString رو تغيير بدي
به نظرم يكبار توي webconfig بنويسيم و در تمامي صفحات از ان استفاده كنيم بهتره
البته اين يك نظر هست شايد اشتباه باشه

svm-webmaster
دوشنبه 08 مهر 1387, 22:12 عصر
در این موضوع که یک بار در connectnstring را رد وب کانفیک تعریف کنیم و در صفحات استفاده کنیم که شکی نیست .
اما بقیه موارد چطور ؟ مثل

Inherits System.Web.UI.Page
Dim strConnectionString As String = ConfigurationManager.ConnectionStrings("cString").ToString
Dim TSqlConnection As New SqlConnection(strConnectionString)
Dim TSqlCommand As New SqlCommand()
Dim TSqlDataAdapter As New SqlDataAdapter()
Dim TCompanyData As New Data.DataSet
آیا باید ابتدای هر صفحه اینها را تعریف کرد ؟

kezack
دوشنبه 08 مهر 1387, 23:03 عصر
من خودم كه اين كارو مي كنم هر بار كه با ديتابيس سركار داشته باشم توي اون صفحه اين كد هاي بالا رو مي زارم...

shahab_ksh
سه شنبه 09 مهر 1387, 00:47 صبح
یه تکته در مورد کانکشن ها این کانکشن ها رو که به دیتابیس وصل میشید سعی کنید حتما بعد از اتمام کار ببندید
در نگاه اول مشکلی نداره اگه نبندید ولی وقتی بازدید سایت هما از 10 20 تا بزنه بالا بد جور ارور میده

Neo Persian
سه شنبه 09 مهر 1387, 01:11 صبح
در این موضوع که یک بار در connectnstring را رد وب کانفیک تعریف کنیم و در صفحات استفاده کنیم که شکی نیست .
اما بقیه موارد چطور ؟ مثل

Inherits System.Web.UI.Page
Dim strConnectionString As String = ConfigurationManager.ConnectionStrings("cString").ToString
Dim TSqlConnection As New SqlConnection(strConnectionString)
Dim TSqlCommand As New SqlCommand()
Dim TSqlDataAdapter As New SqlDataAdapter()
Dim TCompanyData As New Data.DataSet
آیا باید ابتدای هر صفحه اینها را تعریف کرد ؟
ايجاد يك كلاس ميتونه مفيد باشه!

kezack
سه شنبه 09 مهر 1387, 10:24 صبح
یه تکته در مورد کانکشن ها این کانکشن ها رو که به دیتابیس وصل میشید سعی کنید حتما بعد از اتمام کار ببندید
در نگاه اول مشکلی نداره اگه نبندید ولی وقتی بازدید سایت هما از 10 20 تا بزنه بالا بد جور ارور میده
ميشه بكيد جه ارور هاي ميده وقتي بعد از اتمام كار نبنديم

svm-webmaster
سه شنبه 09 مهر 1387, 11:24 صبح
من برای احتیاط از try استفاده می کنم و بعد از اتمام کار در finally کانکشن را می بندم و باز محض احتیاط قبل از open کردن یک بار close می کنم و سپس open می کنم. می دونم که در finally که می بندم بسته می شود اما چون کار اولم با دیتابیس با خطاهای زیادی همراه بود که تمامی آنها در اثر باز و بسته کردن دیتابیس بود به قولی بیش از حد حساس شدم و دو بار می بندم.
در مورد نکته ای که دوستمان Neo Persian گفته اند

ايجاد يك كلاس ميتونه مفيد باشه!
می شود لطفا بیشتر توضیح بدهید. چه فوایدی دارد . ایا خطاهای خاصی خواهد داشت . اگر همزمان تعداد بالایی از کاربران به دیتابیس وصل شوند، مشکلی به وجود می آید یا خیر و ...
ممنون

milade
سه شنبه 09 مهر 1387, 17:47 عصر
بابا كلاس فقط براي کد نويسي كم تر هست کد هايي رو كه زياد ازشون استفاده مي مكني رو در کلاس مي زاري تا با دو تا خط بتوني بخونيش همين!!!!!!!!!

ميشه بگيد جه ارور هاي ميده وقتي بعد از اتمام كار نبنديم
سلام
اروري که مي ده (با يه مثال):
شما برا نام كاربري اين طوري استفاده مي كنيد:


con.open()
'code marboteh
con.open
'code marboteh
در اينجا كانكشن باز شده ولي اصلا بسته نشده و دوباره درخواست باز شدن شده!!!!!
که ارور مي ده كه "اي برادر كانكشن رو نبستي كجا ميري به اين زودي؟"


و يه كار بدتر که سرورت به طور حتم بعد از 400 500 تا كاربر ريست مي كنه
همين!!!!!!!!!!!

من برای احتیاط از try استفاده می کنم و بعد از اتمام کار در finally کانکشن را می بندم و باز محض احتیاط قبل از open کردن یک بار close می کنم و سپس open می کنم. می دونم که در finally که می بندم بسته می شود اما چون کار اولم با دیتابیس با خطاهای زیادی همراه بود که تمامی آنها در اثر باز و بسته کردن دیتابیس بود به قولی بیش از حد حساس شدم و دو بار می بندم.

چه كارييه برادر شما در همان try كانشن رو باز و بسته كن . اگه اروري مربوط به باز شدن گرفتي برو توي catch حال ارور رو بگير.
ok برادر؟
موفق باشي
باي

Neo Persian
سه شنبه 09 مهر 1387, 18:00 عصر
من برای احتیاط از try استفاده می کنم و بعد از اتمام کار در finally کانکشن را می بندم و باز محض احتیاط قبل از open کردن یک بار close می کنم و سپس open می کنم. می دونم که در finally که می بندم بسته می شود اما چون کار اولم با دیتابیس با خطاهای زیادی همراه بود که تمامی آنها در اثر باز و بسته کردن دیتابیس بود به قولی بیش از حد حساس شدم و دو بار می بندم.
در مورد نکته ای که دوستمان Neo Persian گفته اند

می شود لطفا بیشتر توضیح بدهید. چه فوایدی دارد . ایا خطاهای خاصی خواهد داشت . اگر همزمان تعداد بالایی از کاربران به دیتابیس وصل شوند، مشکلی به وجود می آید یا خیر و ...
ممنون
من ايجاد كلاس رو براي اين پيشنهاد دادم كه هر بار مجبور نشيد تو هر صفحه كد مربوط به connection رو بنويسيد

svm-webmaster
پنج شنبه 11 مهر 1387, 08:50 صبح
واقعا از راهنمایی و نظر تمامی دوستان ممنون هستم.
من همانطور که توصیه کرده بودید کدها را در کلاس قرار دادم و حجم کد نویسی ام واقعا کاهش پیدا کرد.

در ضمن از تذکر به جای شما ممنون ، دیگر به صورت محکم کاری نخواهم کرد :)

و يه كار بدتر که سرورت به طور حتم بعد از 400 500 تا كاربر ريست مي كنه
همين!!!!!!!!!!!

از همگی شما متشکرم ، موفق باشید.