PDA

View Full Version : attach و detach کردن sql با linq ؟



bazikadeh
جمعه 14 آذر 1393, 13:21 عصر
من یک برنامه دارم میخواستم جایی دیگه اجراش کنم.
برای اجرا هم که نیاز هست بانک را اتچ کنم به express یا server حالا چطوری میشه این کار را با لینک انجلم داد ؟
اینم بگم تو سایت روشش با ado هست ولی من linq میخوام.
------------------
backup و restor را با linq دارم.

sajadsobh
جمعه 14 آذر 1393, 13:50 عصر
فایل دیتابیس رو توی یه پوشه کنار برنامه ات بذار. بعد نصب sqlexpress کانکشن استرینگ رو به اینصورت تغییر بده:

SqlConnection sqlCon = new SqlConnection(@"Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\Database\mydb.mdf ; Database=mydb; Integrated Security=True; Connect Timeout=30; User Instance=True; Asynchronous Processing=true");

الان من یه پوشه به اسم Database توی Debug ساختم و فایل دیتابیس رو اونجا ذخیره کردم.
به این آدرس توجه کن:

AttachDbFilename=|DataDirectory|\Database\mydb.mdf

bazikadeh
جمعه 14 آذر 1393, 14:26 عصر
خوب یعنی من الان اینو توی دکمه بزارم حله ؟ آخه برنامم رو با لینک و سرور نوشتم ؟
بعد detach چظوری ؟

sajadsobh
جمعه 14 آذر 1393, 14:38 عصر
خوب یعنی من الان اینو توی دکمه بزارم حله ؟ آخه برنامم رو با لینک و سرور نوشتم ؟
بعد detach چظوری ؟

اینو جای کانکشن استرینگی که داری بذار.
بعدشم نیاز به detach نیست. برنامه که خودکار بسته شه خودش detach میکنه.

bazikadeh
جمعه 14 آذر 1393, 15:32 عصر
نمیشه من ارور میگیرم ... من دو جا ادرس دارم یکی توی ستینگ یکی هم توی linq ...

bazikadeh
جمعه 14 آذر 1393, 20:09 عصر
کسی نیست بگه ؟ ؟

bazikadeh
شنبه 15 آذر 1393, 15:38 عصر
میشه بانکم که در sql server هست با expres اجراش کنم ؟

khokhan
شنبه 15 آذر 1393, 23:18 عصر
میشه بانکم که در sql server هست با expres اجراش کنم ؟
هرکدام از اینها رشته اتصال مختص به خود دارند ..... پس بهتر است از همون نسخه که در نوشتن برنامه استفاده شده در سیستم مقصد هم همون نسخه نصب گردد


اینم بگم تو سایت روشش با ado هست ولی من linq میخوام.

اگه دوست داری تا بانک اطلاعاتی به لحاظ فیزیکی همراه برنامه باشه ....... و رشته اتصال از درون برنامه مدیریت بشه .....
بهتر است که:
1 - فایل appconfig رو به کل از پروژه حذف کنی و رشته اتصال موجود در قسمت seting پروژه رو هم پاک کنی ....
2- در داخل مدل لینک در پاراگراف دوم یا سوم محلی هست که به رشته اتصال موجود درseting پروژه اشاره می کنه ....
در این قسمت به جای رشته اتصال پیش فرض ، رشته اتصالی رو که در نظر دارین تا از محل مشخص مثل پوشه root (کنار فایل اجرایی ) فایل دیتابیس رو اتک کنه ، قرار بدین

bazikadeh
شنبه 15 آذر 1393, 23:21 عصر
ممنون ولی این چیزایی که شما گفتین در آن مبتدی هستم.
خوب تو تنظیمات برنامه و appconfig هردو رو حذف میکنم و در linq نمیدونم چه ادرسی یا کدی بزنم

khokhan
یک شنبه 16 آذر 1393, 00:15 صبح
ممنون ولی این چیزایی که شما گفتین در آن مبتدی هستم.
خوب تو تنظیمات برنامه و appconfig هردو رو حذف میکنم و در linq نمیدونم چه ادرسی یا کدی بزنم
می تونی رشته اتصال و سایر ملزومات رو به سلیقه خودت بگذاری داخل یه کلاس جداگانه که خودت ایجاد می کنی :
یه چیزی مثل این که یه رشته اتصال با اتک خودکار فایل دیتابیس از پوشه اصلی برنامه می باشد:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace linq_conect
{
static class Connect
{
public static string CONN_STRING = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db_crm.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
public static int MAX_USERS = 300;
public static int MAX_DB_CONNECTIONS = 500;
}



}


بعدشما رشته اتصال پیش فرض رو در این قسمت از کد در داخل مدل لینک رو با یستی با کلاس بالایی ست کنین :



public DataClasses1DataContext() :
base(global::linq_conect.Properties.Settings.Defau lt.db_crmConnectionString, mappingSource)

{
OnCreated();
}
و بعد از تغیر دادنتون به این شکل در می اد :

public DataClasses1DataContext() :


base(Connect.CONN_STRING)
{
OnCreated();
}
حالا دیگه برنامه تون توی هرسیستمی که درش sqlexpress 2008 نصب باشه خودکار بانک رو اتک می کنه و شروع به اجرا در می اد

نمونه

bazikadeh
یک شنبه 16 آذر 1393, 16:05 عصر
من همین کار ها را کردم ولی ارور داد
---------------------------------------
اخه 10 تا ارور در لینک میگیره ازم ؟ اینو چی کنم ؟

bazikadeh
یک شنبه 16 آذر 1393, 16:06 عصر
public DataClasses1DataContext() : base(global::linq_conect.Properties.Settings.Defau lt.db_crmConnectionString, mappingSource)

{
OnCreated();
}


چندین کلاس بالا رام تازه void هم هست اونا رو چی کنم ؟