مشکل عدم اتصال به دیتابیس نسخه sql express
درود بر اساتید عزیز من میخوام برنماه رو رو از Sql server به Sql express بذارم ولی این خطا رو به من میده من از sql server 2019 و vs2015 استفاده میکنم
/////خطا
///کانکشن استرینگ
metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|\anbarzamzam.MDF;integrated security=True;User Instance=True MultipleActiveResultSets=True;App=EntityFramework"
ممنون میشم اگر کمک کنید کارم لنگه چند روزه روش گیر کردم این کارو کردم برای نصب در سیسیتم کلاینت که روش sql express نصب هست نصب بشه
////کد نویس برو دکمه ورود هست
private void Btn_enter_Click(object sender, RoutedEventArgs e)
{
/////////////////////////////////////////////////استفاده از الگوریتم رمزنگاری برای پسوورد
SHA256CryptoServiceProvider sha2 = new SHA256CryptoServiceProvider();
byte[] B1;
byte[] B2;
B1 = UTF8Encoding.UTF8.GetBytes(password.Password.Trim());
B2 = sha2.ComputeHash(B1);
string userpasswordhashed = BitConverter.ToString(B2);
////////////////////////////////////////////////اتصال به جدول user
var query = from u in db.users
where u.useractive==1
where u.userusername==txt_user.Text.Trim()
where u.userpassword== userpasswordhashed
select u;
var user = query.ToList();
///////////////////////////////////////////////////////برسی کردن نام کاربری
if (user.Count==1)
{
RegistryKey usernamekey = Registry.CurrentUser.CreateSubKey("software\\foroosh");
try
{
usernamekey.SetValue("usernameregistery", txt_user.Text.Trim());
/////بدست اوردن مشخصات کاربر واد شده
publicvariable.gusername = user[0].username;
publicvariable.guserfamily = user[0].userfamily;
publicvariable.guserid = user[0].userid;
/////////////////////////////////بدست اوردن اطلاعات کامپیوتر واسم کامپیوتر
string computername = Environment.MachineName;
string ipname = "";
//IPHostEntry IPE = Dns.GetHostEntry(computername);
#pragma warning disable CS0618 // Type or member is obsolete
IPHostEntry IPE = Dns.GetHostByName(computername);
#pragma warning restore CS0618 // Type or member is obsolete
IPAddress[] IPA = IPE.AddressList;
ipname = IPA[0].ToString();
/////////////////////////////////////////ثبت اطلاعات ورود وخروج کاربران
UserLog UL = new UserLog();
UL.ComputerName = computername;
UL.IPAddress = ipname;
UL.UserID = publicvariable.guserid;
UL.InterDateTime = string.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(calender.Text)) + "-" + string.Format("{0:HH:mm:dd}", DateTime.Now);
db.UserLogs.Add(UL);
db.SaveChanges();
}
catch
{
MessageBox.Show("درهنگام ورودکاربر به سیستم مشکلی به وجود امد");
}
finally
{
usernamekey.Close();
}
this.Close();
}
else
{
MessageBox.Show("با این نام کاربری وهیچ کاربر فعلی یافت نشد", "سیستم ورود", MessageBoxButton.OK, MessageBoxImage.Stop);
return;
تبدیل دیتابیس ایجاد شده با Sql نسخه استاندارد به نسخه SqlExpress در حالت عادی ممکن نیست. چون وقتی شما دیتابیس رو در حالت استاندارد یا Enterprise ایجاد می کنید یک دیتابیس Full در اختیار دارید که همه امکانات دیتابیس رو در اختیار شما قرار میده. اما در SqlExpress شما بسیاری از امکانات رو در اختیار ندارید. بنابراین نمی تونید یک دیتابیس با حالت Full رو به حالت Express ببرید.
البته چندتا راهکار دارید
- راهکار اول اینه که یک اسکریپت از دیتابیس خودتون ایجاد کنید. و همون اسکریپت رو در SqlExpress اجرا کنید تا اینبار دیتابیس شما در حالت Express ایجاد بشه. دقت کنید که اگر در دیتابیس خودتون برخی امکانات مثل توابع، SP ها و یا تریگر و ... استفاده کرده باشید ممکنه در Express پشتیبانی نشه.
- برای ساختن اسکریپت از دیتابیس روی نام دیتابیس خودتون کلیک راست کنید و گزینه Task و سپس Generate Script رو انتخاب کنید
در پنجره باز شده گزینه next رو بزنید و سپس در پنجره Choose Object مطابق شکل زیر گزینه ها را انتخاب کنید
دقت کنید در حالت بالا فقط از جداول دیتابیس اسکریپت ساخته میشه و اگر جز جداول موارد دیگه ای هم دارید باید گزینه script entire database رو انتخاب کنید. سپس اسکریپت ایجاد شده رو در SqlExpress اجرا کنید تا جداول شما اینبار در نسخه Express ایجاد بشه.
خب حالا شما یک دیتابیس در Express دارید.
- راهکار دوم هم این لینک رو مطالعه کنید. دقت کنید در هر 2 راهکار بعد از تبدیل دیتابیس خطاهایی رو دریافت خواهید کرد که باید تک تک رفع بشه. در واقع بهتر بود از همان ابتدا دیتابیس را در نسخه SqlExpress ایجاد می کردید.
کانکشن استرینگ در SqlExpress
حالا دقت کنید که شما یک دیتابیس در SqlExpress دارید و کانکشن استرینگی که شما باید استفاده کنید باید کانکشن استرینگ مخصوص این نسخه باشه. جهت مشاهده لیست Connection String به لینکی که قرار داده شده مراجعه کنید و کانکشن مورد نظر خودتون رو پیدا کنید و در پروژه استفاده کنید.
اما کانکشن استرینگ شما چیزی مشابه با کد زیر خواهد بود
Data Source=localhost\SQLEXPRESS;Initial Catalog=test;Integrated Security=SSPI;
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
- قرار دادن مقادیر ارسالی یک ستون از جدول به صورت سطری در استیمول