دلیل خطای An OLE DB Provider was not specified in the ConnectionString. An example would be, Provider=SQLOLEDB چیست
یک پروژه یا سی شارپ و Wpf دارم. دیتابیس رو از اکسس استفاده کردم. کانکشن استرینگ هم به صورت زیر تعریف کردم.
public static string ConnectToAccess()
{
string connection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
Directory.GetCurrentDirectory() + "/accessdb_portableaccounting/portableaccounting.accdb;Jet OLEDB:DataBase Password=1";
return connection;
}
اما موقع اجرا با خطای زیر مواجه میشم. لطفا راهنمایی کنید باید چیکار کرد؟
Exception: Exception thrown: 'System.ArgumentException' in System.Data.dll ("An OLE DB Provider was not specified in the ConnectionString. An example would be, 'Provider=SQLOLEDB;'.")
پاسخ هوش مصنوعی
خطای "An OLE DB Provider was not specified in the ConnectionString" به این معناست که رشته اتصال (Connection String) به درستی تنظیم نشده یا OLE DB Provider مناسب برای دسترسی به پایگاه داده مشخص نشده است.
با توجه به کدی که ارایه داده اید، به نظر می رسد که از یک Provider معتبر استفاده می کنید، اما ممکن است چند نکته وجود داشته باشد که باید آنها را بررسی کنید:
- اطمینان حاصل کنید که Microsoft Access Database Engine (ACE) بر روی سیستم شما نصب شده باشد. اگر نصب نیست، می توانید آن را از وبسایت مایکروسافت دانلود کنید.
- اگر سیستم عامل شما 64 بیتی است، مطمین شوید که نسخه ی مناسب ACE (64 بیتی) را نصب کرده اید.
- ممکن است نیاز باشد که رشته ی اتصال خود را با نگاهی به خطاهای دیگر کاهش دهید و آن را به شکل زیر ساده کنید:
public static string ConnectToAccess()
{
string connection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
Directory.GetCurrentDirectory() + "/accessdb_portableaccounting/portableaccounting.accdb;";
return connection;
}
در صورت استفاده از رمز عبور برای پایگاه داده، می توانید آن را به انتهای رشته اتصال اضافه کنید، اما ابتدا اطمینان حاصل کنید که بدون آن اولین بار امتحان کنید.
پس از انجام تغییرات و اطمینان از نصب ACE، دوباره سعی کنید برنامه را اجرا کنید. اگر هنوز با خطا مواجه شدید، مطمین شوید که مسیر پایگاه داده به درستی مشخص شده است.
با توجه به خطایی که دارید خطا در قسمت Provider در کانکشن استرینگ هست. همون طوری که در خود خطا هم گفته شده در قسمت Provider به جای Microsoft.ACE.OLEDB.12.0 قرار بدید SQLOLEDB
اما اگر احیانا خطای شما رفع نشد، میتونه از نسخه اکسس شما هم باشه چون شما در قسمت Provider نوشتید Microsoft.ACE.OLEDB.12.0 که مربوط به نسخه 12 اکسس یا همون اکسس 2007 هست. شما باید مطمئن باشید که نسخه Access runtime Engine رو به درستی و مربوط به ورژن 12 نصب کردید. اگر احیانا نسخه جدیدتری نصب کردید باید شما 12 رو به شماره های بالاتر تغییر بدید. (Access runtime engine)
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- تفاوت اوراکل و Sql Server چیست
- جابه جایی سطر و ستون در Sql Server