PDA

View Full Version : سوال: فوری فوری خطا در attachکردن sql2008در C#‎



hichkasebikas
شنبه 04 شهریور 1391, 11:51 صبح
خواهش میکنم یکی دلیل این خطا رو بهم بگه.(عکس ضمیمه شده)
هرجایی که میگردم کسی کد attach کردن sql2008در C#‎‎ رو قرار نداده. همشون همین طوری نوشتن که بازم جواب نمیده. حتی این کد رو هم بهم دادن اما من بدون پسورد(local)وارد میشم و نمیدونم خط اولش رو چطو تغییر بدم!!؟؟
خیلی فوریه خواهش میکنم زود جواب بدین!


string connectionstring = "Data Source=.;User ID='sa';Password='31'";
SqlConnection conn = new SqlConnection(connectionstring);
string dbname = "ma";
string query1 = "USE [master] IF NOT EXISTS (Select name from sysdatabases WHERE name ='" + dbname + "') EXEC sp_attach_db @dbname = 'ma',@filename1 = '" + Application.StartupPath + "\\ma.mdf' , @filename2 ='" + Application.StartupPath + "\\ma_log.ldf'";
SqlCommand cm1 = new SqlCommand(query1, conn);
conn.Open();


try
{
cm1.ExecuteNonQuery();
}
catch
{
MessageBox.Show("مشکل در اجرای دیتابیس توسط برنامه", "خطای دیتابیس");
}

دوستان به نظرتون این پیغام نمیخواد بگه که من 5تا خطا توی برنامم دارم؟؟:متفکر:

hichkasebikas
شنبه 04 شهریور 1391, 13:34 عصر
بابا یکی راه حل بده توروخدااااااااااا!!!!
فردا صبح باید پروژه رو تحویل بدم!
حتما" هم باید با کد Attach کنم.

hakim22
شنبه 04 شهریور 1391, 17:19 عصر
این یک مشکل امنیتیه
اول مطمئن شوید که آدرس فایل کاملا درسته !
بهتره توی یک مسیر کوتاهتر باشه
بعد مطمئن بشید که Run as administrator رو هنگام راه اندازی VS استفاده کردید.

این کد خیلی عجیب و غریبه و نمیدونم کار به Master چه ربطی به Attach کردن توی SQL server داره

اینکار رو با SMO به راحتی میشه انجام داد :


'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
Dim owner As String
Dim logstr as String
Dim datastr as String
owner = srv.Databases("AdventureWorks2012").Owner


Dim d As DataTable
datastr = "C:\Program Files\Microsoft SQL Server"
datastr = datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Data.mdf"
logstr = "C:\Program Files\Microsoft SQL Server"
logstr = logstr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Log.ldf"
d = srv.DetachedDatabaseInfo(datastr)
Dim r As DataRow
Dim c As DataColumn

'Attach the database
Dim sc As StringCollection
sc = New StringCollection
sc.Add(datastr)
sc.Add(logstr)
srv.AttachDatabase("AdventureWorks2012", sc, owner, AttachOptions.None)

amir-aa
شنبه 04 شهریور 1391, 17:51 عصر
به هیچ وجه نباید intial catalog بذاری!!integrated security رو هم بردار همونجوری که گفتم بنویس

string connectionstring = "Data Source=.;User ID='sa';Password='01'";


علاوه بر اون بذار توی فرولدر bin/debug ببین درست میشه؟؟
یادت نره مسیرشم مثل کد زیر بنویسی


Application.StartupPath + "\\db.mdf

nilmil_nil
شنبه 04 شهریور 1391, 17:56 عصر
فک کنم شما باید اول به جدول master وصل بشین بعد دستور SQL اجرا کنید
و بعد از اون فایل mdf رو Attach کنید

hichkasebikas
یک شنبه 05 شهریور 1391, 16:09 عصر
این یک مشکل امنیتیه
اول مطمئن شوید که آدرس فایل کاملا درسته !
بهتره توی یک مسیر کوتاهتر باشه
بعد مطمئن بشید که Run as administrator رو هنگام راه اندازی VS استفاده کردید.

این کد خیلی عجیب و غریبه و نمیدونم کار به Master چه ربطی به Attach کردن توی SQL server داره

اینکار رو با SMO به راحتی میشه انجام داد :


'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
Dim owner As String
Dim logstr as String
Dim datastr as String
owner = srv.Databases("AdventureWorks2012").Owner


Dim d As DataTable
datastr = "C:\Program Files\Microsoft SQL Server"
datastr = datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Data.mdf"
logstr = "C:\Program Files\Microsoft SQL Server"
logstr = logstr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Log.ldf"
d = srv.DetachedDatabaseInfo(datastr)
Dim r As DataRow
Dim c As DataColumn

'Attach the database
Dim sc As StringCollection
sc = New StringCollection
sc.Add(datastr)
sc.Add(logstr)
srv.AttachDatabase("AdventureWorks2012", sc, owner, AttachOptions.None)


ممنونم اما من با زبان c#دارم مینویسم.لطفا"کد به زبان c#رو اگه دارین واسم بذارین.