با سلام
بنده یک برنامه Windows form application با استفاده از C# دارم که می خوام فایل نصب اون رو بسازم در ضمن باید بگم که برنامه من به بانک اطلاعاتی Microsoft sql server وصل هستش که به صورت local روی سیستمم نصب شده.
برای این منظور ابتدا sql server express رو نصب کردم و دیتا بیسم رو از طریق generate scripts به express انتقال دادم بعد detach کرده و فایل mdf و ldf رو در پوشه زیر کپی کردم (نام پروژه ام: Naser)
Naser\Naser\bin\Debug
حالا برای ادامه کار نیاز دارم که connection string ام رو ویرایش کنم من از connection string زیر استفاده می کنم ولی با error مواجه می شم:
<connectionStrings> <add name="NaserEntities" connectionString="metadata=res://*/Classes.MyWorkShopModel.csdl|res://*/Classes.MyWorkShopModel.ssdl|res://*/Classes.MyWorkShopModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Naser.MDF;Integrated Security=true;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/> </connectionStrings>
لطفا راهنمایی ام کنید که connection string رو باید چی وارد کنم؟ مهم هم نیست که این رشته حتما باید تو فایل app.config باشه می تونه به صورت داخلی هم تو خود برنامه به صورت زیر باشه:
sqlConnection con1 = new sqlConnection(); cin1.connectiontring =- |"";
ویرایش خط آخر:
con1.connectionString = "";
متن ارور را قرار دهید
دسترسی read و write به بانک دادید ؟
دسترسی read و write رو باید تو برنامه InstallAware بدم این مشکل قبل اون مرحله برای من پیش میاد وقتی که می خوام پروژه ام رو با دیتابیس جدید تست کنم. وقتی از connectionString ای که بالا گفتم استفاده می کنم این خطا رو می گیرم:
Keyword not supported: 'metadata'.
نمونه رشته اتصال
<add name="PUBSEntities" connectionString="metadata=res://*/Models.Pubs.csdl|res://*/Models.Pubs.ssdl|res://*/Models.Pubs.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Bashgah100Data.MDF;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
فرض کنیم اسم دیتابیس من باشه: Naser
من با این فرض از این رشته اتصال استفاده کردم:
<add name="PUBSEntities" connectionString="metadata=res://*/Models.Pubs.csdl|res://*/Models.Pubs.ssdl|res://*/Models.Pubs.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Naser.MDF;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
ولی باز هم موقع استفاده خطای زیر رو گرفتم:
Keyword not supported: 'metadata'.
مشکل از چی می تونه باشه؟
از چه ORM استفاده کردید ؟
از ORM خاصی استفاده نمی کنم بانک اطلاعاتی برنامه چند تا دستور select و insert ساده + یک stored procedure داره که به روش قدیمی پیاده سازی شده. در ضمن DBMS ای که استفاده شده Microsoft SQL Server Express هستش.
در ضمن باید خدمتتون عرض کنم که الان رشته اتصال رو من تغییر دادم و اینبار خطای زیر رو می گیرم:
Additional information: Directory lookup for the file "C:\Users\Naser Sadeghi\Desktop\Projects\Naser\Naser\bin\Debug\Naser.mdf" failed with the operating system error 5(Access is denied.). Cannot attach the file 'C:\Users\Naser Sadeghi\Desktop\Projects\Naser\Naser\bin\Debug\Naser.mdf' as database 'Naser'.
رشته اتصال جدید:
"Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|Naser.mdf;Database=Naser;Integrated Security=True";
رشته اتصال قبلی شما برای Entity بود
رشته اتصال جدید صحیح است
متن ارور میگه به مسیر دسترسی ندارید
برنامه را به صورت run as admin اجرا کنید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)