PDA

View Full Version : وقتی به وسیله linq به دیتابیس متصل میشم،این مهمه که DB کجاست و Connection String چیه؟



DrPedram
جمعه 08 آبان 1394, 17:17 عصر
وقتی به و سیله linq به دیتابیس متصل میشم،این مهمه که DB کجاست و Connection String چیه؟

چون من با این روش اصلا Connection string رو نمیبینم.

اگه بعد از کامل شدن نرم افزار محل DB رو عوض کنم چجوری میشه؟ آخه جایی هم نیست که بتونم Connection string رو داینامیک تعریف کنم.

شاید سوالم یخورده مسخره بنظر بیاد ببخشید،تازه شروع کردم!

ممنون بابت پاسخگوییتون.:لبخندساده:

DrPedram
جمعه 08 آبان 1394, 17:23 عصر
پیدا کردم!!
میزارم اینجا شاید بدرد کسی هم خورد!
امیدوارم درست باشه!


1
2
3
4
5
6
7
8
9
10
11

public void SimpleQuery()
{
var connectionString = @"Server=10.1.10.1;database=Mydatabase;uid=myusern ame;password=mypassword;";
DataContext dc = new DataContext(connectionString);

var q =
from n in dc.table
select n;

Console.WriteLine(n);
}





آقا وقتی کلاس LINQ رو ادد میکنیم تو فایل APP.config یه Connection String نوشته میشه،اون قضیش چیه؟

با روش بالا Connection string و عوض کنیم یا از App.Config؟

DrPedram
جمعه 08 آبان 1394, 22:52 عصر
خواهش میکنم آقا!
کسی بلد نیست؟

Vidico
شنبه 09 آبان 1394, 07:34 صبح
سلام
من بصورت دستی رفتم و با linq وصل شدم و اطلاعات رو نمایش داد م
ولی پسورد و ... نمیخواست
اصلا این کدها نبود توش

DrPedram
شنبه 09 آبان 1394, 17:30 عصر
سلام
من بصورت دستی رفتم و با linq وصل شدم و اطلاعات رو نمایش داد م
ولی پسورد و ... نمیخواست
اصلا این کدها نبود توش

سلام
من اصلا راجع به پسورد و اینا حرف نزدم! آره کانکت میشه ولی مشکل چیز دیگه ای هست،سوالمو یبار دیگه بخونید متوجه میشید.

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

Vidico
شنبه 09 آبان 1394, 21:36 عصر
ببینید من هم چند هفته هست اومدم با سی شارپ کار میکنم
اولین روشی هم که دنیالش رفتم در خصوص ارتباط پایگاه داده linq بود

من کد های ado.net رو دیدم، ظاهرا پسورد و .. رو تو کانکشن تعریف می کنن، و محل دیتابیس مشخصه البته اگه اشتباه نکنم
ولی تو linq من کلا کد زیر رو دارم واسلام


var db = new mydataDataContext(); // linq class
var simple_query = db.tellbook; // linq query
dataGridView1.DataSource = simple_query;

حالا آیا نیاز نیست پایگه داده sql server من تو پروژه رمز داشته باشه؟
یا محل دیتابیس مشخص بشه؟

DrPedram
شنبه 09 آبان 1394, 21:53 عصر
محل دیتابیس همونجاست که جدول رو ازش درگ کردن تو کلاس Data Context
ولی من میخوام بدونم چجوری میشه آدرس پویا به دیتابیس LINQ داد؟

محمد آشتیانی
شنبه 09 آبان 1394, 23:27 عصر
سلام
ببینید ، وقتی شما جداول مورد نظرتون رو از Server Explorer به فایل dbml اضافه می کنید ، بصورت خودکار در فایل App.config یک کانکشن استرینگ ، مطابق با اونچه در Server Explorer وارد کردید ، ساخته میشه و همچنین در متد سازنده کلاس DataContext پروژه شما ، کانکشن استرینگی که در App.config تولید شده ، معرفی میشه

چیزی شبیه به این:

public YourDataClassDataContext() : base(global::YourProject.Properties.Settings.Defau lt.YourDatabaseConnectionString, mappingSource)
{
OnCreated();
}


علاوه بر این ، شما میتونید هنگامی که یک نمونه از کلاس DataContext می سازید ، بعنوان آرگومان کانکشن استرینگ خودتون بنویسید ، در این حالت کانکشن استرینگی که در متد سازنده DataContext معرفی شده در نظر گرفته نمیشه و از کانکشن استرینگ وارد شده استفاده میشه

چیزی شبیه به این:
var db = new YourProjectDataContext(YourConnectionString);

تا اینجا که مشکلی نیست؟
حالت درست اینه که کانکشن استرینگ یکبار در برنامه ساخته بشه و هرجا که نیاز به ارتباط با دیتابیس بود از همون کانکشن استرینگ استفاده بشه ، به این ترتیب هر موقع در نرم افزار نیاز به تغییر کانکشن استرینگ باشه ، فقط با یک تغییر مثلا در App.config برنامه آماده به کار خواهد شد (یعنی عملا حالت دوم و معرفی کانکشن استرینگ بصورت دستی در جای جای برنامه درست نیست ، هر چند امکانش هست که استفاده بشه)
اینکه به چه ترتیب امکان تغییر یا تنظیم کانکشن استرینگ رو به کاربر میدید به خودتون برمیگرده ، بنده همیشه موقع اجرای برنامه ازتباط با دیتابیس رو چک میکنم ، در صورتی که ارتباط برقرار نشه ، از طریق یک فرم مشخصات سرور رو از کاربر میگیرم و با فرمت کانکشن استرینگ مورد نظرم در فایل config ذخیره میکنم و بقیه ماجرا.



موفق باشید.

hadi vafaii
شنبه 09 آبان 1394, 23:55 عصر
سلام عرض میکنم خدمت اساتید محترم
منم تو استفاده از لینک یا اس کیو ال یه مشکلی دارم و اون اینه که وقتی برنامه رو سیستم خودم هست درست کار میکنه و هیچ مشکلی نداره اما رو سیستم دیگه که نصب میکنم میگه بانک موجود نیست میشه یه راهنمایی بکنین که چی کار کنم
لازم به توضیحه قبلا که از اکسس استفاده می کردم هم همچین مشکلی داشتم و دوستان تو سایت راهنمایی کردن و گفتن که باید بانک رو تو دیباگ بریزی و یه تغییر تو کانکشنت بدی که بانک رو از تو دیباگ بخونه و از اون موقع به بعد دیگه تو اکسس همچین مشکلی پیدا نکردم
حالا تو اس کیو ال هم باید بانکمو تو دیباگ بریزم ؟
اگه اره و این کارو کردم بعد کانکشنم رو چجوری ایجاد کنم ممنونم از راهنمایی هاتون

samiasoft
یک شنبه 10 آبان 1394, 03:53 صبح
سلام عرض میکنم خدمت اساتید محترم
منم تو استفاده از لینک یا اس کیو ال یه مشکلی دارم و اون اینه که وقتی برنامه رو سیستم خودم هست درست کار میکنه و هیچ مشکلی نداره اما رو سیستم دیگه که نصب میکنم میگه بانک موجود نیست میشه یه راهنمایی بکنین که چی کار کنم
لازم به توضیحه قبلا که از اکسس استفاده می کردم هم همچین مشکلی داشتم و دوستان تو سایت راهنمایی کردن و گفتن که باید بانک رو تو دیباگ بریزی و یه تغییر تو کانکشنت بدی که بانک رو از تو دیباگ بخونه و از اون موقع به بعد دیگه تو اکسس همچین مشکلی پیدا نکردم
حالا تو اس کیو ال هم باید بانکمو تو دیباگ بریزم ؟
اگه اره و این کارو کردم بعد کانکشنم رو چجوری ایجاد کنم ممنونم از راهنمایی هاتون

بهترین راه این هستش که محل دیتابیس در کدنویسی بدین صورت تعریف بشه :

Application.StartupPath & "\data.mdb"

حال میتونید دیتابیستون رو کنار فایل اجرایی قرار بدید یا اینکه در داخل پوشه ای کنار فایل اجرایی با اضافه کردن نام پوشه در ادرس.