PDA

View Full Version : سوال: استفاده از بانک اکسس بر روی هاست در ASP.Net



Slytherin
پنج شنبه 08 مهر 1389, 04:34 صبح
سلام دوستان،
من در حال یادگیری ASP.Net هستم و طبق کتاب آقای جعفر نژاد قمی پیش می روم.
در فصل اول بخش بانک اطلاعاتی این کتاب مثالی برای ساخت کانکشن برای وصل شدن به بانک اطلاعاتی اکسس داده شده است که من با موفقیت این مثال را انجام دادم.
طبق کتاب متغیر رشته کانکشین به این شکل تعریف شد:

strCon = "Provider = Microsoft.Jet.OLEDB.4.0;" & "Data Source = /Users/Arma/Documents/Visual Studio 2010/Projects/DataBase/Database1.mdb"
حالا من می خواهم این مثال را روی سایت واقعی اجرا کنم، چطوری باید متغیر strCon را آدرس دهی کنم؟
من شنیدم برای استفاده از بانک اطلاعاتی باید آن را به صورت جداگانه ساخت، یعنی ما نمی تونیم از بانک اطلاعاتی که خودمان ساختیم استفاده کنیم؟ من هرچی توی هاست گشتم امکانی برای ساخت بانک اطلاعاتی اکسس پیدا نکردم.
شاید لازم به ذکر باشه که من از هاست رایگان سایت Somee (http://somee.com/) می کنم، ممکن است این سایت اکسس را پشتیبانی نکند؟!
خیلی عذر می خوام سوالاتم رو اینطوری مطرح کردم، آخه من تا به حال تجربه برنامه نویسی وب نداشته ام، ممنون می شوم اگر یک سری توضیحات کامل در این خصوص به من بدهید...
با تشکر قبلی.

daffy_duck376
پنج شنبه 08 مهر 1389, 06:48 صبح
تقریبا تمام هاست های ویندوزی اکسس رو پشتیبانی می کنن . مشکل شما فقط توی آدرس دهی فایل هست

Slytherin
پنج شنبه 08 مهر 1389, 11:53 صبح
تقریبا تمام هاست های ویندوزی اکسس رو پشتیبانی می کنن . مشکل شما فقط توی آدرس دهی فایل هست

خب ممنون، می شه بگید چطوری می بایست آدرس داد؟

daffy_duck376
پنج شنبه 08 مهر 1389, 14:14 عصر
بانک باید توی پوشه APP_DATE آدرس دهی شده باشه . شما اگه بانکت رو بیرون از سایت کپی کنی و بانک داخلی رو حذف کنی وقتی میتوی به بانک بیرون از پشه سایت یه کانکشن درست منی خودش بهت پیغام میده و بانک رو داخل کپی میکنه و و آدرس رو تغییر میده

Slytherin
پنج شنبه 08 مهر 1389, 14:44 عصر
با عرض تشکر از پاسختون، با توجه به تجربه نداشتن در این مسئله با توجه به جواب شما به چند سوال برخوردم:
1.وقتی صفحه رو Publish می کنم پوشه ای به اسم APP_DATE وجود ندارد، باید دستی ساخته شود؟
2.در سورس های صفحه پوشه ای خالی به اسم App_Data وجود دارد، منظور از APP_DATE همین پوشه است؟
3.فرض می کنیم این پوشه APP_DATE در یک جایی موجود باشد، چطوری باید بهش آدرس داد؟ (این خط کد را چگونه باید تغییر داد؟)

strCon = "Provider = Microsoft.Jet.OLEDB.4.0;" & "Data Source = /Users/Arma/Documents/Visual Studio 2010/Projects/DataBase/Database1.mdb"
4.امکانش هست سورسی را که ضمیمه کردم بررسی کنید؟
با تشکر قبلی از شما.

Slytherin
پنج شنبه 08 مهر 1389, 17:20 عصر
سایر دوستان هم اگر امکانش هست این موضوع رو بررسی کنند، با سپاس.

Slytherin
جمعه 09 مهر 1389, 14:03 عصر
می شه در این مورد کسی به من کمک کنه؟
سوالم فقط اینه که چطوری باید به دیتا بیسی که روی هاست هست آدرس بدهم،
پیشاپیش ممنون.

aminghaderi
جمعه 09 مهر 1389, 20:11 عصر
استفاده از بانک اکسس بر روی هاست در ASP.NETای بابا اسکیوال با اون عظمتش گذاشتید کنار ، بعد با اکسس کار می کنید؟!؟!
با اسکیوال کار کنید تا جایی که من خاطرم هست استاد جعفرنژاد هم توی کتابشون با اسکیوال کار کردند؟!
اما اگر هم جوابگوی شما نبود ، می تونید در همین سایت برنامه نویس سرچ کنید ، کلی مطلب درباره این موضوع شما هست؟!
حداقل 2 مورد که خودم داخلش پست دادم و کل هم پروسه ارتباط با اسکیوال رو داخلش قرار دادم ؟!

موفق باشی.

Slytherin
جمعه 09 مهر 1389, 21:06 عصر
ممنون از پاسختون، انگار دل پری دارید! :D
در هر صورت من فعلا می خوام از اکسس استفاده کنم و طبق کتاب پیش بروم (آخرین مباحث بانک اطلاعاتی SQL هست که هنوز به اونجا نرسیدم)
ظاهرا این هاست من هم پنل مدیریت دیتا بیس اکسس نداره، حالا که نداره اینکه گفتید به صورت لوکال جریانش چیه؟
من چون تجربه ندارم اطلاعی ندارم، حتما باید هاست پنل مدیریت دیتا بیس X رو داشته باشه تا بشه از اون دیتا بیس استفاده کرد؟
ممنون می شوم اگر سایر دوستان هم راهنمایی کنند...

aminghaderi
جمعه 09 مهر 1389, 22:55 عصر
من فعلا می خوام از اکسس استفاده کنم و طبق کتاب پیش برومطبق کتاب چیه؟! توی بعضی از کتاب های ویندوز هم اومده "بعد از ران کردن MSDOS فلاپی رو داخل فلاپی درایو بگذارید و سپس فرمانX و د کمه چی رو بزنید تا ... " ؟!
حالا واقعا الان استفاده می شه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
خوب ، خیر!
حالا شما تجربه نداری ؟! OK
من یه خورده ای تجربه دارم ، پیشنهاد می کنم یه راست برو سر MS SQLServer 2005 یا MS SQLServer 2008 و تمام ، حالا اگر اوراکل هم بعدا یاد گرفتید ، خوب ضرر نداره ولی کار جفتشون فعلا تغریبا در یه سطح هست.
در ضمن خوبه بدونید بنده شخصا تجربه کار با اکسس 2003 (اگر اشتباه نکنم) رو به همراه خدا بیامرز VB6 در 3 تا 4 تا پروژه اطلاعاتی داشتم ، می دونم الان نسخه خیلی بالاترش هست و قابلیت های زیادی هم بهش اضافه کردند ولی اصلا قابل قیاس با اسکیوال نیست!
و....


ظاهرا این هاست من هم پنل مدیریت دیتا بیس اکسس نداره، حالا که نداره اینکه گفتید به صورت لوکال جریانش چیه؟
من چون تجربه ندارم اطلاعی ندارم، حتما باید هاست پنل مدیریت دیتا بیس X رو داشته باشه تا بشه از اون دیتا بیس استفاده کرد؟به صورت لوکال همونیکه daffy_duck376 (http://barnamenevis.org/forum/member.php?u=28691) عزیز توضیح دادند .
برای اکسس خیر ولی برای اسکیوال هم که توضیح دادم(واجبه!!!).

موفق باشی.

Slytherin
جمعه 09 مهر 1389, 23:18 عصر
دمت گرم که راهنمایی می کنی، من هم کاملا می دونم و موافقم که SQL بهتره اما مایلم کد هایی که با اکسس نوشتم رو در سایت واقعی تست کنم!
بله daffy_duck376 عزیز هم لطف کردند و روش کلی رو گفتند، اما من می خوام بدونم که دقیقا این کار چطوری صورت می گیره؟ (همین طوری که گفتم تازه در حال یادگیری هستم)

aserfg
شنبه 10 مهر 1389, 08:57 صبح
سلام به شما دوست عزیز
حتما برای این کار راهی هست اما توجه داشته باشین همیشه برای کار با بعضی پلت فرمها و یا زبانها بانک اطلاعاتی خاصی بیشتر رواج داره مثلا پی اچ پی mysqlو یا asp.net با sql serverدلفی پارادوکس (فکر کنم) . از طرفی برای کار با هر دیتابیسی همون طور که خودتون گفتین نمی شه فایلهاتون رو کپی کنید درون یک فولدر و از اونها استفاده کنید علتش هم بسیار واضحه چون با ید بانک اطلاعاتی مربوطه مثلا برای شما اکسس اون رو شناسایی کنه . خوب تا اینجا به این نتیجه می رسیم که شما باید محلی رو در کنترل پنل هاست خودتون برای ایجاد بانک اطلاعاتی مورد نظر و ری استور کردنش پیدا کنید . برای اتصال به اون هم همون طوری که توی لوکال مقدار دهی می کنید فقط در باید آی پی سرور و پورت مربوطه(اصطلاحا پروکسی سرور) رو بهش معرفی کنید .
موفق باشید

daffy_duck376
شنبه 10 مهر 1389, 09:12 صبح
دوستانی که تجربه کار با acsess روی هاست ندارن لطفا نظر ندن تا دوستمون به نتیجه دلخواه برسه . الان مشکل ایشون اتصال به اکسس در هاست هست نه برتری sql نسبت به اکسس
این کانکشن استرینگ هست :

<add name="db1ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\db1.mdb"
providerName="System.Data.OleDb" />
این هم نمونه کد
فقط یادت نره بعد از آپلود به پوشه app_data مجوز نوشتن بهش بدی مگر نه از ویرایش بانک خبری نیست !

aserfg
شنبه 10 مهر 1389, 09:20 صبح
دوست ارجمند آقای daffy_duck376 (http://www.barnamenevis.org/forum/member.php?u=28691) شما که تجربه کاری دارین لطفا نحوه هاست کردن رو بگین بقیه هم یاد بگیرن چون ایشون روی لوکال مشکلی ندارن و کانکشن استرینگ رو توی تاپیک صفحه قبل خودشون گفتن.

pedram_ns
شنبه 10 مهر 1389, 09:30 صبح
همونطور که دوستمون توضیح دادن بهتر از اسکیوال از همین اول استفاده کنید.
ولی اگه هنوز هم می خواهید اکسس رو امتحان کنید فایل اکسس رو در پوشه app_data قرار بدید هر گاه وب سایت جدیدی رو ایجاد می کنید این پوشه جز پوشه های پیش فرض ایجاد می شه(دستی هم می تونی ایجاد کنی).
با کد زیر هم به دیتابیستون وصل می شید.

Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|database.mdb")

database.mdb نام دیتابیس اکسس هست.

daffy_duck376
شنبه 10 مهر 1389, 09:55 صبح
دوست ارجمند آقای daffy_duck376 (http://www.barnamenevis.org/forum/member.php?u=28691) شما که تجربه کاری دارین لطفا نحوه هاست کردن رو بگین بقیه هم یاد بگیرن چون ایشون روی لوکال مشکلی ندارن و کانکشن استرینگ رو توی تاپیک صفحه قبل خودشون گفتن.
همون طور که من توی پست خودم و دوستمون pedram_ns اشاره کردن کانکشن استرینگ اکسس توی لوکال و هاست تفاوتی نداره و هر دو کار میکنه . فقط کافی است توی هاست کپی شود و کار کند . باز هم میگم مجوز نوشتن یادتون نره

aserfg
شنبه 10 مهر 1389, 10:59 صبح
منظور بنده کانکشن نبود بلکه نحوه کار با دیتابیس بود یعنی روی هاست بانک توی یه پوشه باشه !!!!!
اگه نه چطور بانک رو روی هاست بزارن ؟
مشکل اینه که توی کنترل پنل گزینه ای برای کار با دیتابیس اکسس وجود نداره .

daffy_duck376
شنبه 10 مهر 1389, 11:04 صبح
اون نمونه ای که گذاشتم سایت پابلیش شده هست و میتونه روی هاست گذاشته بشه

aminghaderi
شنبه 10 مهر 1389, 11:23 صبح
وستانی که تجربه کار با acsess روی هاست ندارن لطفا نظر ندن تا دوستمون به نتیجه دلخواه برسه
حق با شماست ، من سالهاست که با Access کار نکردم.
مشکلاتی که یادم هست این ها هستند :
1- اکسس تراکم کاربر بالا رو نمی تونه تحمل کنه ؟! (مثلا 1000 تا کاربر آنلاین)
2- فایل db که در هاست کپی شده ، راحت قابل دانلود هست ، در صورت محکم کاری هم توسط هکر ها قابل دانلود هست.
(لطفا اگر این موارد رفع شده به من هم اعلام کنید ، تا اطلاعاتم رو ویرایش کنم .)

موفق باشید.

daffy_duck376
شنبه 10 مهر 1389, 12:16 عصر
حق با شماست ، من سالهاست که با Access کار نکردم.
مشکلاتی که یادم هست این ها هستند :
1- اکسس تراکم کاربر بالا رو نمی تونه تحمل کنه ؟! (مثلا 1000 تا کاربر آنلاین)
2- فایل db که در هاست کپی شده ، راحت قابل دانلود هست ، در صورت محکم کاری هم توسط هکر ها قابل دانلود هست.
(لطفا اگر این موارد رفع شده به من هم اعلام کنید ، تا اطلاعاتم رو ویرایش کنم .)

موفق باشید.
اکسس بیش از 255 تراکنش های همزمان را ساپورت نمیکنه . برای این که 255 ترانکش همزمان داشته باشیم بسته به کاربرد سایت بین 1000 تا 10000 کاربر آن لاین نیازه!که بین اونها 255 نفر در یک زمان درخواست اطلاعات کنن.
در مورد امنیت هم باید خدمت دوستمون عرض کنم پوشه app_data و کلا محتویات پوشه های سیستمی به هیچ عنوان قابل دانلود نیست و حتی اگر شما توی پوشه app_data یه عکس بگذاری دز زمان اجرا به هیچ عنوان نمیتونی بهش دسترسی داشته باشی

توی این تاپیک قبلا در باره کاربرد اکسس بحث شده
http://barnamenevis.org/forum/showthread.php?t=185696&highlight=sql

aserfg
شنبه 10 مهر 1389, 12:47 عصر
جناب daffy_duck376 (http://www.barnamenevis.org/forum/member.php?u=28691) عزیز ، یعنی روی وب هم بانک توی همین پوشه app_data باشه؟

daffy_duck376
شنبه 10 مهر 1389, 13:01 عصر
جناب daffy_duck376 (http://www.barnamenevis.org/forum/member.php?u=28691) عزیز ، یعنی روی وب هم بانک توی همین پوشه app_data باشه؟
همین طوره . باید همون جا باشه

Slytherin
شنبه 10 مهر 1389, 15:46 عصر
نمونه کد جناب daffy_duck376 عالی بود و به درستی کار کرد.
نمونش را در اینجا (http://yaas.somee.com/) گذاشتم تا شما هم ببنید (ممکن چند روز دیگه این فضا رو ویرایش کنم، ولی تا دو سه روز آتی می تونید ببینید.)
با تشکر ویژه از daffy_duck376 عزیز.

yakooza2009
یک شنبه 11 مهر 1389, 00:19 صبح
خب ممنون، می شه بگید چطوری می بایست آدرس داد؟

strCon = "Provider = Microsoft.Jet.OLEDB.4.0;" & "Data Source = |datadirectory|Database1.mdb"

Salee_metal
جمعه 05 شهریور 1395, 15:39 عصر
ممنوننننننن