PDA

View Full Version : سوال: پیغام خطای The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.



kiqhoo
چهارشنبه 25 بهمن 1391, 23:20 عصر
با سلام یک سایت ساده با یک صفحه ایجاد کردم روی local جواب میده ولی روی هاست که آپلود کرم پیغام زیر رو نشون میده
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
آیا مشکل از منه یا ازهاست آدرس سایت هم این زیر هست
http://www.varazpirooz.com

aspismylove
چهارشنبه 25 بهمن 1391, 23:22 عصر
با سلام یک سایت ساده با یک صفحه ایجاد کردم روی local جواب میده ولی روی هاست که آپلود کرم پیغام زیر رو نشون میده
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
آیا مشکل از منه یا ازهاست آدرس سایت هم این زیر هست
http://www.varazpirooz.com

چی استفاده کردی ؟

kiqhoo
چهارشنبه 25 بهمن 1391, 23:28 عصر
فقط یک پیج ساده با یک gridview و دیتابیس اکسس
connection string رو هم اینجوری نوشتم تو eb.config
<add name="VPConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\VP.mdb" providerName="System.Data.OleDb"/>

nani4u
چهارشنبه 25 اردیبهشت 1392, 12:19 عصر
چرا برنامه نوشته شده تحت پلتفرم net. در برقراری ارتباط با بانک اطلاعاتی Access با پیام خطای “provider is not registered on the local machine” مواجه می شود؟
گاهی برنامه های نوشته شده تحت پلتفرم net. که برای ذخیره اطلاعات خود از بانک های اطلاعاتی Access یا Excel استفاده می کنند، با پیام خطای “Microsoft.Jet.OLEDB.4.0 provider is not registered on the local machine ” و یا “Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine” مواجه می شوند.
این مشکل زمانی به وقوع می پیوندد که کاربر از OLE DB Provider Jet یا Ace (یک کامپوننت نرم افزاری جهت برقراری ارتباط مصرف کننده OLE DB منبع داده ها میباشد ) برای دسترسی به فایلهای دیتابیس مبتنی بر Microsoft Office مانند فایلهای Excel یا Access بر روی سیستم های 64 بیتی استفاده شده باشد. در چنین شرایطی در صورتیکه کاربر از پلتفرم 64 بیتی استفاده نموده باشد، حتی اگر provider های مذکور نیز به درستی نصب شده باشند، بازهم به خطای مربوطه برخورد خواهد کرد.
مشکل مورد نظر در اینجا است که برنامه ذکر شده در هنگام کامپایل، برای پلتفرم 64 بیتی (X64 )کامپایل می شود، حال آنکه هر دو provider های مورد نظر (Jet / ACE OLEDB ) فقط دارای نسخه های پشتیبانی شده بر روی سیستم 32 بیتی هستند (x86-32 ) و پردازش های 64 بیتی نمیتوانند کامپوننت های 32 بیتی را بارگذاری نمایند بنابراین پیام خطای فوق رخ خواهد داد.
برای رفع خطاهای فوق باید برنامه مورد نظر خود را برای پلتفرم 32 بیتی کامپایل نمایید. بدین صورت که در محیط IDE (visual studio 2008-2010) قسمت تنظیمات مربوط به کامپایل و سربرگ "Build" ، پلتفرم مقصد را از حالت "Any CPU " خارج کرده و بر روی "X86" قرار دهید و سپس کامپایل نمایید.(همانند شکل زیر)





http://support.iranhost.com/AvatarHandler.ashx?radfile=%5cUsers%5c5269%5cOLE%2 0DB%2epng

لازم به ذکر است مایکروسافت به همراه Office 2010 نسخه ای 64 بیتی از ACE OLE DB ، با نام Microsoft Access Database Engine (http://www.microsoft.com/en-us/download/details.aspx?id=13255) عرضه کرده است که میتواند به عنوان جایگزینی مناسب برای Jet OLEDB Provider مورد استفاده قرار گیرد. برای استفاده از Provider مربوط باید ConnectionString خود راجهت اتصال بر روی “Microsoft.ACE.OLEDB.12.0 ” تنظیم نمایید.

nani4u
چهارشنبه 25 اردیبهشت 1392, 12:19 عصر
به این لینک هم سری بزنی بد نیست
https://docs.google.com/file/d/0Bzf6M1egkrAXRGdheldCd0hTQld5RjQxenZfUFgxdw/edit?pli=1

tooraj_azizi_1035
چهارشنبه 25 اردیبهشت 1392, 21:44 عصر
“Provider=Microsoft.ACE.OLEDB.12.0;”

omidnm2006
سه شنبه 12 آذر 1392, 11:53 صبح
اگه از اکسس 2010 یا 2007 استفاده کردی به این لینک یه سر بزن
http://social.msdn.microsoft.com/Forums/en-US/1d5c04c7-157f-4955-a14b-41d912d50a64/how-to-fix-error-the-microsoftaceoledb120-provider-is-not-registered-on-the-local-machine?forum=vstsdb

h_jafarnezhad
چهارشنبه 25 شهریور 1394, 17:53 عصر
چرا برنامه نوشته شده تحت پلتفرم net. در برقراری ارتباط با بانک اطلاعاتی Access با پیام خطای “provider is not registered on the local machine” مواجه می شود؟
گاهی برنامه های نوشته شده تحت پلتفرم net. که برای ذخیره اطلاعات خود از بانک های اطلاعاتی Access یا Excel استفاده می کنند، با پیام خطای “Microsoft.Jet.OLEDB.4.0 provider is not registered on the local machine ” و یا “Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine” مواجه می شوند.
این مشکل زمانی به وقوع می پیوندد که کاربر از OLE DB Provider Jet یا Ace (یک کامپوننت نرم افزاری جهت برقراری ارتباط مصرف کننده OLE DB منبع داده ها میباشد ) برای دسترسی به فایلهای دیتابیس مبتنی بر Microsoft Office مانند فایلهای Excel یا Access بر روی سیستم های 64 بیتی استفاده شده باشد. در چنین شرایطی در صورتیکه کاربر از پلتفرم 64 بیتی استفاده نموده باشد، حتی اگر provider های مذکور نیز به درستی نصب شده باشند، بازهم به خطای مربوطه برخورد خواهد کرد.
مشکل مورد نظر در اینجا است که برنامه ذکر شده در هنگام کامپایل، برای پلتفرم 64 بیتی (X64 )کامپایل می شود، حال آنکه هر دو provider های مورد نظر (Jet / ACE OLEDB ) فقط دارای نسخه های پشتیبانی شده بر روی سیستم 32 بیتی هستند (x86-32 ) و پردازش های 64 بیتی نمیتوانند کامپوننت های 32 بیتی را بارگذاری نمایند بنابراین پیام خطای فوق رخ خواهد داد.
برای رفع خطاهای فوق باید برنامه مورد نظر خود را برای پلتفرم 32 بیتی کامپایل نمایید. بدین صورت که در محیط IDE (visual studio 2008-2010) قسمت تنظیمات مربوط به کامپایل و سربرگ "Build" ، پلتفرم مقصد را از حالت "Any CPU " خارج کرده و بر روی "X86" قرار دهید و سپس کامپایل نمایید.(همانند شکل زیر)



http://support.iranhost.com/AvatarHandler.ashx?radfile=%5cUsers%5c5269%5cOLE%2 0DB%2epng

لازم به ذکر است مایکروسافت به همراه Office 2010 نسخه ای 64 بیتی از ACE OLE DB ، با نام Microsoft Access Database Engine (http://www.microsoft.com/en-us/download/details.aspx?id=13255) عرضه کرده است که میتواند به عنوان جایگزینی مناسب برای Jet OLEDB Provider مورد استفاده قرار گیرد. برای استفاده از Provider مربوط باید ConnectionString خود راجهت اتصال بر روی “Microsoft.ACE.OLEDB.12.0 ” تنظیم نمایید.
سلام ویندوز من سون 64 هست و توی برنامم به همچین مشکلی برخوردم ولی تمام تنظیمات رو روی این گزینه هایی که گفتین تنظیم شده .ولی بازم خطا میده چی کار کنم

fakhravari
پنج شنبه 26 شهریور 1394, 08:50 صبح
مشکل از کانکشن استرینگ است

h_jafarnezhad
پنج شنبه 26 شهریور 1394, 09:44 صبح
مشکل از کانکشن استرینگ است

توی کلاس یه تابع به این صورت نوشتم
public static void connection(string txt)
{

if (txt.Contains(".ACCDB")||txt.Contains(".accdb"))
{
OleDbConnectionStringBuilder Builder = new OleDbConnectionStringBuilder();
Builder.Provider = "Microsoft.ACE.OLEDB.12.0";
Builder.DataSource = Path.Combine(txt.Replace("/", "//"));
con.ConnectionString=Builder.ToString();
}
if (txt.Contains(".MDB")||(txt.Contains(".mdb")))
{
OleDbConnectionStringBuilder Builder = new OleDbConnectionStringBuilder();
Builder.Provider = " Microsoft.JET.OLEDB.4.0";
Builder.DataSource = Path.Combine(txt.Replace("/", "//"));
con.ConnectionString=Builder.ToString();
}

}
قبلش هم کانکشن رو تعریف کردم
الان محتوای con.ConnectionString اینه "Provider=\" Microsoft.JET.OLEDB.4.0\";Data Source=D:\\project\\SplitDatabase\\SplitDatabase\\ khorasan-razavi1527.mdb" ولی وقتی کانکشن میخواد باز شه این خطا رو میده The ' Microsoft.JET.OLEDB.4.0' provider is not registered on the local machine. چی کار کنم

asghar2008
پنج شنبه 26 شهریور 1394, 23:02 عصر
توی کلاس یه تابع به این صورت نوشتم
public static void connection(string txt)
{

if (txt.Contains(".ACCDB")||txt.Contains(".accdb"))
{
OleDbConnectionStringBuilder Builder = new OleDbConnectionStringBuilder();
Builder.Provider = "Microsoft.ACE.OLEDB.12.0";
Builder.DataSource = Path.Combine(txt.Replace("/", "//"));
con.ConnectionString=Builder.ToString();
}
if (txt.Contains(".MDB")||(txt.Contains(".mdb")))
{
OleDbConnectionStringBuilder Builder = new OleDbConnectionStringBuilder();
Builder.Provider = " Microsoft.JET.OLEDB.4.0";
Builder.DataSource = Path.Combine(txt.Replace("/", "//"));
con.ConnectionString=Builder.ToString();
}

}
قبلش هم کانکشن رو تعریف کردم
الان محتوای con.ConnectionString اینه "Provider=\" Microsoft.JET.OLEDB.4.0\";Data Source=D:\\project\\SplitDatabase\\SplitDatabase\\ khorasan-razavi1527.mdb" ولی وقتی کانکشن میخواد باز شه این خطا رو میده The ' Microsoft.JET.OLEDB.4.0' provider is not registered on the local machine. چی کار کنم


سلام

ایراد از کانکشن استرینگ نیس

تو یکی از تاپیک ها جواب این سوال دادم

ساده میگم شما موقع کامپایل پروژه اتون در ویژوال استادیو نوع cpu رو X86 انتخاب کنیدو فایل دیتابیس رو در داخل پوشه X86 در Debug قرار بدین.

مراحل کار رو تو همین سایت جستجو کن

موفق باشی

fakhravari
جمعه 27 شهریور 1394, 00:48 صبح
دیتابیستون چه ورژنی از اکسسه

mdev12
دوشنبه 04 آبان 1394, 08:20 صبح
دیتابیستون چه ورژنی از اکسسه

منم این مشکل رو دارم از office 2007 منصرف شدم می خواهم office 2010 اکسسش استفاده کنم

uniservice
یک شنبه 08 آذر 1394, 20:41 عصر
چرا برنامه نوشته شده تحت پلتفرم net. در برقراری ارتباط با بانک اطلاعاتی Access با پیام خطای “provider is not registered on the local machine” مواجه می شود؟
گاهی برنامه های نوشته شده تحت پلتفرم net. که برای ذخیره اطلاعات خود از بانک های اطلاعاتی Access یا Excel استفاده می کنند، با پیام خطای “Microsoft.Jet.OLEDB.4.0 provider is not registered on the local machine ” و یا “Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine” مواجه می شوند.
این مشکل زمانی به وقوع می پیوندد که کاربر از OLE DB Provider Jet یا Ace (یک کامپوننت نرم افزاری جهت برقراری ارتباط مصرف کننده OLE DB منبع داده ها میباشد ) برای دسترسی به فایلهای دیتابیس مبتنی بر Microsoft Office مانند فایلهای Excel یا Access بر روی سیستم های 64 بیتی استفاده شده باشد. در چنین شرایطی در صورتیکه کاربر از پلتفرم 64 بیتی استفاده نموده باشد، حتی اگر provider های مذکور نیز به درستی نصب شده باشند، بازهم به خطای مربوطه برخورد خواهد کرد.
مشکل مورد نظر در اینجا است که برنامه ذکر شده در هنگام کامپایل، برای پلتفرم 64 بیتی (X64 )کامپایل می شود، حال آنکه هر دو provider های مورد نظر (Jet / ACE OLEDB ) فقط دارای نسخه های پشتیبانی شده بر روی سیستم 32 بیتی هستند (x86-32 ) و پردازش های 64 بیتی نمیتوانند کامپوننت های 32 بیتی را بارگذاری نمایند بنابراین پیام خطای فوق رخ خواهد داد.
برای رفع خطاهای فوق باید برنامه مورد نظر خود را برای پلتفرم 32 بیتی کامپایل نمایید. بدین صورت که در محیط IDE (visual studio 2008-2010) قسمت تنظیمات مربوط به کامپایل و سربرگ "Build" ، پلتفرم مقصد را از حالت "Any CPU " خارج کرده و بر روی "X86" قرار دهید و سپس کامپایل نمایید.(همانند شکل زیر)



http://support.iranhost.com/AvatarHandler.ashx?radfile=%5cUsers%5c5269%5cOLE%2 0DB%2epng

لازم به ذکر است مایکروسافت به همراه Office 2010 نسخه ای 64 بیتی از ACE OLE DB ، با نام Microsoft Access Database Engine (http://www.microsoft.com/en-us/download/details.aspx?id=13255) عرضه کرده است که میتواند به عنوان جایگزینی مناسب برای Jet OLEDB Provider مورد استفاده قرار گیرد. برای استفاده از Provider مربوط باید ConnectionString خود راجهت اتصال بر روی “Microsoft.ACE.OLEDB.12.0 ” تنظیم نمایید.


با سلام دوست عزیز
جواب شما همچنین توی این سایت هم توسط شخص دیگری داده شده
http://stackoverflow.com/questions/1991643/microsoft-jet-oledb-4-0-provider-is-not-registered-on-the-local-machine
تشکر جواب داد
:تشویق:

parsvacuumpumps
شنبه 13 شهریور 1395, 15:08 عصر
قسمت Platform باید روی X86 main تنظیم گردد ؟

واکیوم کیان پارس | وکیوم کیان پارس (http://parsvacuumpumps.com/)
| تسمه نقاله کیان پارس | نوار نقاله کیان پارس (http://parsconveyorbelt.com/)

kamiloted
شنبه 13 شهریور 1395, 17:56 عصر
Microsoft Access Database Engine 2010 Redistributable (https://www.microsoft.com/en-us/download/details.aspx?id=13255)این موتور باید دانلود بشه.
اون یه ترفنده که بعدا به مشکل برمیخورید.
از ما گفتن بود.