PDA

View Full Version : سوال: نحوه استفاده از کانکشن به دیتابیس



MahmoodM30
سه شنبه 11 شهریور 1393, 18:55 عصر
سلام دوستان من قبلا با استفاده از خود برنامه دیتابیس رو ایجاد میکردم و با استفاده از این کد کانکت میشدم


SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\Book.mdf;Integrated Security=True;User Instance=True");

حالا من همین دیتابیس رو با SQLServer ایجاد کردم ولی موفق نشدم کانکت بشم یعنی کدش رو بنویسم


SqlConnection con = new SqlConnection(@"Data Source=mahmoodm30-pc.Book.dbo\\SQLEXPRESS;AttachDbFilename=\Book.mdf ;Integrated Security=True;User Instance=True");

اینم تصویر کانکن شدن به دیتابیسم هست

ممنون میشم دوستان بگن چطوری کد کانکت رو باید بنویسم بر اساس نام سرور و .... اینکه روی سیستم های دیگه هم کار خواهد کرد? منطورم اینه اینجا اسم سرور نام کامپیوترمه و باید از این استفاده کرد یا نوشت local

123017

_4rm4n_
سه شنبه 11 شهریور 1393, 19:50 عصر
سلام
توی یک شرکت خیلی ساده بخوام بگم 1 کامپیوتر سرور هست و مثلا 5 تا کلاینت.
SQl Server رو کامپیوتر سرور نصب میشه و برنامه آیپی سرور رو به عنوان Data Source میگیره ...
ولی اگه شما Data Source رو روی برنامه بزارید Local برنامه فقط روی کامپیوتر سرور به درستی اجرا میشه و دیگه روی کلاینت جواب نمیده ..
بعد ساده ترین کانکشین استرینگ اینه :

Data Source=(local);Initial Catalog=DB_Name;User=UserName;Password=PassWord;

MahmoodM30
سه شنبه 11 شهریور 1393, 20:22 عصر
ممنون دوست عزیز بابیت راهنمایی من همین کد رو نوشتم ولی کار نکرد

میشه رو اون کانکشن استرینگی که خودم نوشتم تغییرات رو اعمال کنید؟

و اینکه اینجا یوز و پسورد چی باید بنویسم و اینکه نبود چی کار کنم؟

ممنون

_4rm4n_
سه شنبه 11 شهریور 1393, 20:29 عصر
ممنون دوست عزیز بابیت راهنمایی من همین کد رو نوشتم ولی کار نکرد

میشه رو اون کانکشن استرینگی که خودم نوشتم تغییرات رو اعمال کنید؟

و اینکه اینجا یوز و پسورد چی باید بنویسم و اینکه نبود چی کار کنم؟

ممنون
در موقع نصب SQL اگر روی windows authentication گذاشته باشید دیگه یوزر پسورد نمیخواد فقط باید integrated security رو برابر با True قرار بدید و یوزر پسورد رو حذف کنید/.
یک کار دیگه هم میتونید بکنید .
همون کانکشینی که عکسشو گذاشتید
روش کلیک سمت راست کنید بعد یک پروپرتی هست به نام کانکشین استرینگ همونو کپی کنید و توی کانکشین استرینگ بزارید/.

MahmoodM30
سه شنبه 11 شهریور 1393, 20:46 عصر
مرسی دوست عزیز حل شد

فقط یک سوال دیگه اگه من همین برنامم رو ببرم روی یه سیستم دیگه که SQLServer هم روش نصبه و دیتابیسم رو اتچ کنم اونجا

اونوقت خوام خودکار نام سرورم رو تشخیص بده چیکار کنم روی سیستم من MAHMOODM30-PC هست ولی روی سیستم دیگه نه

در این مورد هم راهنمایی کنید ممنون درضمن برنامه من قرار نیست روی شبکه باشه همینطوری خودم برای تست میخوام اینکار رو بکنم تا یاد بگیرم

_4rm4n_
سه شنبه 11 شهریور 1393, 21:08 عصر
چرا از نام سرور استفاده کنید ؟ از (local) استفاده کنید !
بازم اگه اصرار بر نام سرور دارید با این کد به دست میاد :

Environment.MachineName

Yanehsar
سه شنبه 11 شهریور 1393, 21:28 عصر
سلام
توی یک شرکت خیلی ساده بخوام بگم 1 کامپیوتر سرور هست و مثلا 5 تا کلاینت.
SQl Server رو کامپیوتر سرور نصب میشه و برنامه آیپی سرور رو به عنوان Data Source میگیره ...
ولی اگه شما Data Source رو روی برنامه بزارید Local برنامه فقط روی کامپیوتر سرور به درستی اجرا میشه و دیگه روی کلاینت جواب نمیده ..
بعد ساده ترین کانکشین استرینگ اینه :

Data Source=(local);Initial Catalog=DB_Name;User=UserName;Password=PassWord;


سلام بنده من با همچین مشکلی برخوردم با استفاده از لینک سه لایه برنامه رو نوشتم و ست آپ ساختم روی سیستم مشتری هم SQL Expresses نصب کردم اما برنامه اجرا نمیشه و خطا میده
کد app.config


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="Academy.Properties.Settings.AcademyDBConnectionStr ing"
connectionString="Data Source=.;Initial Catalog=AcademyDB;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>

class Dal


static string GetConnectionString(string serverName)
{
System.Data.SqlClient.SqlConnectionStringBuilder builder =
new System.Data.SqlClient.SqlConnectionStringBuilder() ;
builder["Data Source"] = serverName;
builder["integrated Security"] = true;
builder["Initial Catalog"] = "AcademyDB";
return builder.ConnectionString;
}

روی سیستم خودم SQL server 2008 r2 نصب هستش و دیتابیس رو روی اون پیاده کردم