PDA

View Full Version : سوال: چطوری Connection را به صورتPublicتعریف کنیم



NIUSHA_KH
چهارشنبه 30 اردیبهشت 1388, 16:44 عصر
با سلام و خسته نباشید،
می شه منو راهنمایی کنید که چطوری Connection را به صورتPublicتعریف کنم تا در همه ی Page هام بتونم ازش استفاده کنم؟
من کد زیر را در Global App در sub session_startنوشتم ، اگه ممکنه بگید ایرادش در کجاست؟


Sub Session_Start(ByVal sender AsObject, ByVal e As EventArgs)
' Code that runs when a new session is started
Dim conn As Data.OleDb.OleDbConnection
Dim csconfig As ConnectionStringSettingsCollection
csconfig =ConfigurationManager
conn = New Data.OleDb.OleDbConnection(csconfig.ConnectionStri ng)
conn.Open()
Session("conn") = conn
EndSub


بعدش هم در /Page مورد نظر نوشتم


conn = Session("conn")

اگه ممکنه بگید ایرادش در کجاست؟چون خطا می گیره و کار نمی کنه
با تشکر از توجهتون

NIUSHA_KH
چهارشنبه 30 اردیبهشت 1388, 17:11 عصر
لطفا کمک کنید

raziee
چهارشنبه 30 اردیبهشت 1388, 17:16 عصر
دوست من چرا از وب کانفیگ استفاده نمیکنی؟


<connectionStrings>
<add name="myConnection" connectionString="Data Source=localhost;Initial Catalog=databasename;Integrated Security=True"/>
</connectionStrings>

و برای استفاده هم در صفحه مورد نظر:


string strCon = ConfigurationManager.ConnectionStrings["myConnection"].ConnectionString.ToString();

Saber_Fatholahi
چهارشنبه 30 اردیبهشت 1388, 17:20 عصر
دوست من بجاي اين كار يه كلاس توي شاخه App_Code بساز و توي اون يك متد استاتيك تعريف كن كه كانكشن استرينگتو بر مي گردونه ديگه به اين مشكلاتم بر نمي خوري البته مي توني از وب كانفيگ هم استفاده كني

من تو پروژه ام كه روي سايت گذاشتم از همين روش استفاده كردم يه نگاه بنداز شايد به كارت بياد
موفق باشي

Alireza Orumand
چهارشنبه 30 اردیبهشت 1388, 17:29 عصر
سلام

بعدش هم در /Page مورد نظر نوشتم
کد:
conn = Session("conn")
اگه ممکنه بگید ایرادش در کجاست؟چون خطا می گیره و کار نمی کنه
دلیل کار نکردنش اینه که شما Connection که در session قرار میدید بعدا برای خوندن اون از session باید اون رو cast کنید.

conn = (Data.OleDb.OleDbConnection)Session("conn")
با اینکه به نظر من کار کردن با data توی presentation اصولی نیست ولی میتونید یک کاری بکنید اگر به connection داخل صفحات نیاز دارید.
یک کلاس درست کنید که از page ارث ببره مثلا به اسم basePage. بعدش یه propertiy از نوع connection به اون اضافه کنید و بعد به جای اینکه صفحات داخلی از page ارث بری کنن از basePage ارث ببرن.
ولی در کل با این کاری که شما انجام دادید اصلا موافق نیستم. این کار هم از لحاظ اصول برنام نویسی مشکل داره و هم اینکه قرار دادن Connection در session به منظور جابجایی اون سربار بیشتری داره تا اینکه شما یک بار یک connection جدید ایجاد کنید.
موفق باشید.