PDA

View Full Version : چطوری میشه بدون نصب اکسس، در #C از دیتابیس های اکسس استفاده کرد؟



nasser460
چهارشنبه 27 آذر 1387, 13:39 عصر
سلام دوستان
من می خوام بدونم که چطوری میشه بدون نصب اکسس، در #C از دیتابیس های اکسس استفاده کرد؟
به طور مثال نرم افزار نارسیس از فایل اکسس استفاده می کنه ولی نیازی نداره که حتما آفیس نصب باشه.

saed2006
چهارشنبه 27 آذر 1387, 14:18 عصر
اگه منظورت اینه که تو برنامه ازش استفاده کنی که فایل رو به پروژه ات اضافه میکنی و باهاش کار انجام میدی ولی اگه میگی چطوری ست اپ باید بسازی تو سایت سرچ کنی اموزش instalsheild هست میتونی فایل ست اپ بسازی

kh1387
چهارشنبه 27 آذر 1387, 17:13 عصر
با سلام
شما باید در کنترل پنل در قسمت Administrative Tools و سپس Data Sources (ODBC) بانک Access رو Add کنید.
زین پس نیازی به نصب برنامه Access ندارید.
موفق باشید.

AMIBCT
چهارشنبه 27 آذر 1387, 17:31 عصر
مگه نصب هم می‌خواد؟!!

kh1387
چهارشنبه 27 آذر 1387, 20:42 عصر
مگه نصب هم می‌خواد؟!!

دوست عزیز اگه در قسمتی که در بالا گفتم برنامه بانک Access تعریف شنده باشه، شما نمی تونید با بانک Access کار کنید.
موفق باشید.

RED-C0DE
چهارشنبه 27 آذر 1387, 21:36 عصر
مثلا یک فایل اکسس به نام
myDataBase.mdb
در مسیر:

c:\Data\myDataBase.mdb

هستش که می خوای بهش وصل بشی و داخلش 1 تیبل به نام tbl_Members که می خوای تعداد رکوردهاش رو برگردونی(خیلی ساده)...
جایی که می خوای به بانک وصل بشی و باهاش کار کنی (مثلا یک فرم یا یک کلاس) فضای نام OleDb رو اضافه کن به اینصورت :

using System.Data.OleDb;


حالا توی رویداد یک Button (مثلا) ابتدا رشته اتصال به بانک (ConnectionString) رو مشخص می کنی و بعد، کوئری مورد نظر و ایجاد یک Command تا این کوئری رو با وصل شدن به بانک اطلاعاتی (به کمک رشته اتصال) اجرا کنه :



private void button1_Click(object sender, EventArgs e)
{
string constrMyDb = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\myDataBase.mdb;Jet OLEDB:Database Password=MyDbPassword;";
OleDbConnection conMyData = new OleDbConnection(constrMyDb);

string queryGetCountMembers = "SELECT COUNT(*) FROM tbl_Members";
OleDbCommand cmdGetCountMembers = new OleDbCommand(queryGetCountMembers, conMyData);

try
{
conMyData.Open();

object o = cmdGetCountMembers.ExecuteScalar();
MessageBox.Show(o.ToString());
}
catch (Exception ex)
{
//...
}
finally
{
conMyData.Close();
}
}

s_ahmadneya
چهارشنبه 27 آذر 1387, 22:00 عصر
بنظر من هیچ تنظیمی نیاز نیست فقط کافیه کد پست قبلی را اجرا نمایید البته برای اجرای برنامه تحت سی شارپت باید ستاپ تهیه نمایی

nasser460
چهارشنبه 27 آذر 1387, 23:41 عصر
با سلام به همه دوستان
به نظر می رسه که من نتونستم سوالمو درست مطرح کنم. ببینین ما برای دسترسی به یک فایل پایگاه داده در ConnectionString یک Provider مشخص می کنیم که نوعی درایور هستش که امکان دسترسی به نوع خاصی از پایگاه داده را امکان پذیر می کند. ولی برای این که این درایور روی سیستم وجود داشته باشد باشد نرم افزار مدیریت آن نوع پایگاه داده روی سیستم نصب شده باشه (حداقل یک راهش اینه) مثلا برای این که بتونیم در برنامه های #C خود از فایل های اکسس استفاده کنیم باید نرم افزار microsoft access روی سیستم نصب کنیم. حالا سوال من اینه که چه طوری میشه بدون این که مجبور باشیم جداگانه یک نرم افزار دیگه رو نصب کنیم به پایگاههای داده دسترسی داشته باشیم. مثلا این درایورها رو به طریقی به برنامه ست آپی که می سازیم اضافه کنیم تا بعدا در موقع نصب روی کامپیوتر مقصد نصب بشه.

RED-C0DE
پنج شنبه 28 آذر 1387, 00:07 صبح
به نظر می رسه که من نتونستم سوالمو درست مطرح کنم. ببینین ما برای دسترسی به یک فایل پایگاه داده در ConnectionString یک Provider مشخص می کنیم که نوعی درایور هستش که امکان دسترسی به نوع خاصی از پایگاه داده را امکان پذیر می کند. ولی برای این که این درایور روی سیستم وجود داشته باشد باشد نرم افزار مدیریت آن نوع پایگاه داده روی سیستم نصب شده باشه (حداقل یک راهش اینه) مثلا برای این که بتونیم در برنامه های #C خود از فایل های اکسس استفاده کنیم باید نرم افزار microsoft access روی سیستم نصب کنیم. حالا سوال من اینه که چه طوری میشه بدون این که مجبور باشیم جداگانه یک نرم افزار دیگه رو نصب کنیم به پایگاههای داده دسترسی داشته باشیم. مثلا این درایورها رو به طریقی به برنامه ست آپی که می سازیم اضافه کنیم تا بعدا در موقع نصب روی کامپیوتر مقصد نصب بشه.

شما dot Net Framework رو که نصب کنی نیاز به این چیزا نداری دوست عزیز... :)
در داخلش قرار دارن اینا...

s_ahmadneya
پنج شنبه 28 آذر 1387, 07:42 صبح
با سلام به همه دوستان
به نظر می رسه که من نتونستم سوالمو درست مطرح کنم. ببینین ما برای دسترسی به یک فایل پایگاه داده در ConnectionString یک Provider مشخص می کنیم که نوعی درایور هستش که امکان دسترسی به نوع خاصی از پایگاه داده را امکان پذیر می کند. ولی برای این که این درایور روی سیستم وجود داشته باشد باشد نرم افزار مدیریت آن نوع پایگاه داده روی سیستم نصب شده باشه (حداقل یک راهش اینه) مثلا برای این که بتونیم در برنامه های #C خود از فایل های اکسس استفاده کنیم باید نرم افزار microsoft access روی سیستم نصب کنیم. حالا سوال من اینه که چه طوری میشه بدون این که مجبور باشیم جداگانه یک نرم افزار دیگه رو نصب کنیم به پایگاههای داده دسترسی داشته باشیم. مثلا این درایورها رو به طریقی به برنامه ست آپی که می سازیم اضافه کنیم تا بعدا در موقع نصب روی کامپیوتر مقصد نصب بشه.
اصولا" وقتی ستاپ برنامه رامی سازیم اگه بتونیم درست بسازیم نیاز به نصب هیچ برنامه دیگری نیست بلکه خود setup همه موارد مورد نیاز را خودش می سازد د ر اینستال شیلد گزینه اکسس هم موجود است .اما برای مواقعی که ستاپ هم نساخته ایم هم نیازی به نصب اکسس نیست

nasser460
پنج شنبه 28 آذر 1387, 17:19 عصر
با سلام
من یک برنامه نوشتم که در اون از جداول اکسس 2007 استفاده کردم. براش ست آپ هم ساختم. در قسمت detected Dependencies چیزی راجع به اکسس 2007 نشان داده نمی شه. بعد این برنامه رو روی یک کامپیوتر دیگه نصب کردم که office 2007 روش نصب نبود، دات نت 3.5 رو خود ست آپ نصب کرد ولی باز هم برنامه نتونست به فایل اکسس دست پیدا کنه. و اعلام کرد که provider مورد نظر وجود نداره. من این برنامه رو روی چند کامپیوتر دیگه هم نصب کردم و همین نتیجه رو گرفتم.

ahmadsystemco
پنج شنبه 05 دی 1387, 06:24 صبح
با سلام خدمت تمام دوستان
توضيحي در رابطه با سوال دوست عزيزمان و سوال شدن اين مورد براي خودم.

سوال دوست عزيزمون nasser460 به جاست.
در فضاي نامي System.Data در دات نت فريم ورك Ado.Net تدارك بيننده ي كلاسهايي در رابطه با كار بر روي پايگاه داده ها مي باشد همان گونه كه تمام دوستان اطلاع دارند براي استفاده از پايگاه داده ابتدا نياز است كه با ااستفاده از OleDbConnection به پايگاه داده متصل شد.
در اتصال به پايگاه داده به Connection String نياز داريم كه در آن provider نشان دهنده ي موتور پردازش ديتابيس است. در دات نت فريم ورك provider مخصوص اكسس 2003 كه فرمت فايل هاي آن mdb ميباشد تعبيه شده است اما براي استفاده از فايلهاي اكسس 2007 (accdb) نياز به provider ديگريست.

Provider=Microsoft.ACE.OLEDB.12.0;اين provider در داخل دات نت فريم ورك وجود ندارد و فقط هنگامي كه اكسس 2007 بر روي سيستم نصب باشد قادر به استفاده از آن هستيم.
حال سوال اينكه چگونه مي توان اين provider را در داخل برنامه ضميمه كرد؟

ببخشيد اين همه حرف اضافي زدم ولي اينم بگم كه اين موتور پردازش در دات نت فريم ورك به نام Microsoft Ooffice 12.0 Access Database Engine Ole DB Provider شناخته ميشود.

ahmadsystemco
پنج شنبه 05 دی 1387, 06:56 صبح
سلامي دوباره
اميدوارم از حرف هاي اضافي اي كه زدم ناراحت نشده باشيد.

من به اين فكر افتادم كه dll هايي را كه توسط نرم افزار هنگام استفاده از اكسس 2007 در برنامه load مي شود را چك كنم و اگر dll اي در رابطه با اكسس 2007 پيدا كردم سعي كنم آن را ضميمه برنامه كنم ولي نتيجه اي نگرفتم.

من حدود يك سال پيش برنامه اي نوشتم (با C#) كه يك Process Manager است و قادر است ليست dll هاي load شده توسط هر process را نمايش دهد و خروجي html و excel بدهد من خروجي html را براي دوستان قرار مي دهم تا شايد من هم در اين وسط به يك دردي خورده باشم.

Mbt925
پنج شنبه 06 فروردین 1388, 10:46 صبح
برای استفاده از اکسس باید موتورش رو نصب کنید.
موتور موردنیاز اکسس Microsoft Jet هست که بسته به نسخه اکسس موردنیازتون، نسخه اون هم تغییر می کنه.
مثلا برای اکسس 2003، Microsoft Jet 4 مناسبه.
حجمی حدود 4MB داره و خیلی ساده نصب میشه.

جستجو کنید و دانلودش کنید.

saeed hg
چهارشنبه 26 مرداد 1390, 23:10 عصر
سلام دوستان
من می خوام بدونم که چطوری میشه بدون نصب اکسس، در #C از دیتابیس های اکسس استفاده کرد؟
به طور مثال نرم افزار نارسیس از فایل اکسس استفاده می کنه ولی نیازی نداره که حتما آفیس نصب باشه.

دوست من ، به لینک زیر یه نگا بنداز دانلود کن ، مشکلت حل میشه.

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23734

موفق باشی