PDA

View Full Version : اتصال به sql sever واضافه کردن دیتابیس



amir.khanlari
چهارشنبه 07 اسفند 1387, 20:42 عصر
با سلام خدمت دوستان گرامی .
من یک سیستم برای ثبت سابقه بیماران در بیمارستان نوشتم می خواستم بدونم چطوری می تونم در خود برنامه دیتابسمو اضافه کنم و برای وصل شدن به آن ، سرور موجود در connectionstring رو چی باید بزارم . اگه ممکنه connectionstring رو برام کامل بنویسید .سوال دیگه که داشتم اینه که برای استفاده از دیتابیسم باید sqlexperess رو روی سیستم نصب کنم حالا چطوری باید با اکسپرس کارکنم اگر نیاز به توضیح بیشتری هست بگید تا توضیح بدم .از همه دوستان تقاضای پاسخ به سوالم رو دارم ضروریه ممنون میشم .

pargoo
چهارشنبه 07 اسفند 1387, 22:08 عصر
سلام دوست عزیز
هر چند یکم گنگ نوشتی یعنی من کامل متوجه نشدم، اما شاید کدهای زیر به کارت بیاد. امتحانشون کن:


همونطور که می دونی دو روش کانکشن برای کار با MS-SQL هست که بستگی داره SQL Server رو چطور تنظیم کرده باشید.

(تو کدهای زیر اگه بخوای بصورت local از database استفاده کنی می تونی کمله (local) رو بجای myServerName بنویسی یا اینکه کلا اسم کامپیوتر سرور رو بنویسی.
بقیه اش هم که فک می کنم مشخص باشه- اونهایی که به my شروع شده باید جایگذاری کنی)


روش 1:

string connectionString = "Server=myServerName;database=myDatabaseName;uid=sa ;pwd=myAdminpassword";


string connectionString = "Server=myServerName;database=myDatabaseName;uid=my Username;pwd=myPassword";


روش 2:

Data Source=myServerName;Initial Catalog=myDatabaseName;Integrated Security=True;Persist Security Info=True


البته من خودم خیلی تازه واردم. امیدوارم تونسته باشم کمک کرده باشم.

pargoo
چهارشنبه 07 اسفند 1387, 22:13 عصر
راستی
می تونی تو خود ویژوال استودیو از منوی View>Server Explorer رو بزنی و تو اونجا با استفاده از منوهایی که داره (با راست کلیک) می تونی کانکشن مربوطه رو بسازی و بعد از اینکه با دکمه Test پایین پنجره ، درستیش رو تست کردی. دکمه Advance رو بزن، تنظیمات کاملتری رو اینجا می تونی انجام بدی مثل Connect timeout و ... اما مهم اینه که تو قسمت پایین این پنجره (Advance) می تونی Connection string رو ببینی و هر کاری دوست داری باهاش بکنی

Sajjad.Aghapour
چهارشنبه 07 اسفند 1387, 22:27 عصر
برای attach کردن دی بی میتونی به فرم زیر بنویسی


data source=.\\SQLEXPRESS;attachdbfilename=DB_Address;i ntegrated security=true;user instance=true;connect timeout=30

amir.khanlari
چهارشنبه 07 اسفند 1387, 23:07 عصر
pargoo عزیز connectionstring که شما تعریف کردید رو من هم استفاده کردم ولی این connnectionstring برای زمانی است که با دستور از دیتابیس اطلاعات می خونیید یا در آن می نویسید . اما زمانی که با دیتاستی که در برنامه ایجاد کردید کار می کنید دیگه از اون connection استفاده نمی کنه و از همون connection ی که در پست دومتون نوشتید استفاده می کنه . در اون کانکشن نام سرور ممکنه در کامپیتر من با کامپیوتر دیگری فرق داشته باشه ودر موقع اجرای برنامه خطا بگیره . برای رفع این مشکل باید ارفیلد computrname در systeminformation استفاده کرد و نام سرور را برابر ان قرار داد . مشکل من اینجاست که نمی تونم app.properties.connectionstring رو که همون کانکشنی که در بالا صحبت کردم رو تغیر بدم چون فقط خواندنی است

amir.khanlari
چهارشنبه 07 اسفند 1387, 23:36 عصر
sajjadlove عزیز . اگه روی سیستممون خود sqlserver نصب باشه باز هم از کد شما میشه استفاده کرد ؟ اصلا چطور میشه فهمید sqlserevr روی سیستم نصب هست ؟

Sajjad.Aghapour
چهارشنبه 07 اسفند 1387, 23:49 عصر
بله.برای attach کردن از این کد میتونید استفاده کنید.

pargoo
چهارشنبه 07 اسفند 1387, 23:53 عصر
به نظرم مشکل شما تو تنظیم فایل config باشه (اگه تحت وب هست web.config و اگه تحت ویندوز هست app.config)
این فایل رو پیدا کن و باز کن . داخل این فایل یه همچین چیزی پیدا می کنی:


<connectionStrings/>

یا


<connectionStrings>
<add name="Testing.Properties.Settings.PersonalExperiencesCon nectionString"
connectionString="Data Source=myServer;Initial Catalog=myDaabase;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>



اگر هم تحت ویندوزی و فایل config رو نداری توی Sulotion explorer>Properties>Settings رو باز کن داخلش یه کانکشن باید باشه که اون رو تنظیم کنی درست می شه.

(البته این ها روش های دستی این کار بود)

amir.khanlari
چهارشنبه 07 اسفند 1387, 23:56 عصر
sajjadlove عزیز از اینکه جوابمو دادید ممنونم . اگه امکان داره در مورد پست 5 هم نظر بدید ممنون

amir.khanlari
پنج شنبه 08 اسفند 1387, 00:02 صبح
pargoo عزیز مشکل من دقیقا در نحوه تغیر این کانکشن در فایل app.config است . من می خواهم در زمان اجرا برنامه نام سرور را برابر با نام کامپیوتر کنم .ولی راحشو نمی دونم. اصلا کاری که می کنم برای داشتن یک کانکشنی که بر روی هر کامپیوتری کار کند درست است یا نه؟؟؟؟؟؟؟

pargoo
پنج شنبه 08 اسفند 1387, 00:23 صبح
راستش من خوابم میاد :خجالت: ولی یه سرچ کردم، زحمت تست کردن و جواب دادنش با شما:


private void MembershipConfig()
{
string connectionString = "Server=[prod server name];Database=aspnetdb;UID=[userid];Pwd=[password];";

Configuration config = WebConfigurationManager.OpenWebConfiguration("~/") as System.Configuration.Configuration;

config.ConnectionStrings.ConnectionStrings.Remove("MembershipConn");
ConnectionStringSettings MembershipConn = new ConnectionStringSettings("MembershipConn", connectionString, "System.Data.SqlClient");

config.ConnectionStrings.ConnectionStrings.Add(Mem bershipConn);

config.Save(ConfigurationSaveMode.Minimal, false);

ConfigurationManager.RefreshSection("connectionStrings");
}


فک می کنم این بنده خدا هم دقیقا همین مشکل رو داشته :
http://forums.asp.net/p/1020860/1381066.aspx
البته یه نکته هم انتهای پیامش داره که باید Permission برای ویرایش فایل config وجود داشته باشه. که به نظرم برای شما مشکلی وجود نخواهد داشت، چون شما احتمالا فقط برای نصب این رو لازم داری که اجرا بشه.

به هر حال امیدوارم به کارت بیاد:لبخندساده:

amir.khanlari
دوشنبه 12 اسفند 1387, 16:17 عصر
لطفا در مورد كدتون بيشتر توضيح بدين