PDA

View Full Version : خواندن نام instance از Registry



شهابسلطانی
سه شنبه 08 دی 1394, 14:44 عصر
سلام
یه سورس میخوام لطفا
مبنی بر اینکه
1-وقتی فرم main من لود میشه نام instance رو از ریجستری دریافت کنه
2-نام رو بزاره تو یه textbox
3- من برای string connection بتونم تو بقیه فرم هام از کمک بگیرم
مثلا توی فرم هام آدرس کانکشنم رو به اینصورت بنویسم:
server=.\\textbox1;database=namedatabase;integrate d security=true
مقدار این textbox1 همون نام instance باشه
ممنون
ضمنا از SQL Server 2008R2 استفاده میکنم
پروژه ام تموم شده ولی تنها گرفتار اینم
لطفا کمکهاتون رو دریغ نفرمایید
ممنون و سپاسگزارم

khokhan
سه شنبه 08 دی 1394, 17:32 عصر
سلام
یه سورس میخوام لطفا
مبنی بر اینکه
1-وقتی فرم main من لود میشه نام instance رو از ریجستری دریافت کنه
2-نام رو بزاره تو یه textbox
3- من برای string connection بتونم تو بقیه فرم هام از کمک بگیرم
مثلا توی فرم هام آدرس کانکشنم رو به اینصورت بنویسم:
server=.\\textbox1;database=namedatabase;integrate d security=true
مقدار این textbox1 همون نام instance باشه
ممنون
ضمنا از SQL Server 2008R2 استفاده میکنم
پروژه ام تموم شده ولی تنها گرفتار اینم
لطفا کمکهاتون رو دریغ نفرمایید
ممنون و سپاسگزارم

.................................................. ....//.........................................==....... ................................

private void button2_Click(object sender, EventArgs e)
{
RegistryView registryView = Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32;
using (RegistryKey hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, registryView))
{
RegistryKey instanceKey = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL", false);
if (instanceKey != null)
{
foreach (var instanceName in instanceKey.GetValueNames())
{
listBox1.Items.Add(Environment.MachineName + @"\" + instanceName);
}
}
}
}

khokhan
سه شنبه 08 دی 1394, 17:47 عصر
سلام
یه سورس میخوام لطفا
مبنی بر اینکه
1-وقتی فرم main من لود میشه نام instance رو از ریجستری دریافت کنه
2-نام رو بزاره تو یه textbox
3- من برای string connection بتونم تو بقیه فرم هام از کمک بگیرم
مثلا توی فرم هام آدرس کانکشنم رو به اینصورت بنویسم:
server=.\\textbox1;database=namedatabase;integrate d security=true
مقدار این textbox1 همون نام instance باشه
ممنون
ضمنا از SQL Server 2008R2 استفاده میکنم
پروژه ام تموم شده ولی تنها گرفتار اینم
لطفا کمکهاتون رو دریغ نفرمایید
ممنون و سپاسگزارم



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


public static string Connectionstring(string sql, string database)
{
SqlConnectionStringBuilder cb = new SqlConnectionStringBuilder();

cb.DataSource = sql;
cb.InitialCatalog = database;
cb.IntegratedSecurity = true;


return cb.ToString();

}
هنگام فراخوانی هم می نویسی :


string con = dada.Connectionstring(textBox1.Text , textBox2.Text );

شهابسلطانی
سه شنبه 08 دی 1394, 20:17 عصر
در ضمن لازم نیست توی تمام فرمها رشته اتصال رو از نو بسازی فقط کافیه یه کلاس کوچولو درست کنی با یه متد و دو تا ورودی
و داخل اون متد از طریق SqlConnectionStringBuilder هرچند تا پارامترکه لازمه برای رشته اتصال خودتون درست کنین
و البته به تبع اون پارامتر ها تعداد ورودی رو هم بایستی افزایش بدین .... یه چیزی مثل این :


public static string Connectionstring(string sql, string database)
{
SqlConnectionStringBuilder cb = new SqlConnectionStringBuilder();

cb.DataSource = sql;
cb.InitialCatalog = database;
cb.IntegratedSecurity = true;


return cb.ToString();

}
هنگام فراخوانی هم می نویسی :


string con = dada.Connectionstring(textBox1.Text , textBox2.Text );
داداش عزیزم ممنون که زحمت کشیدی و وقت گذاشتی
میشه لطفا ابن موضوع آخر رو با یه سورس بذاری متوجهش نشدم
ممنون
بازم ببخشید

شهابسلطانی
چهارشنبه 09 دی 1394, 17:30 عصر
آقا لطفا جواب دریغ نفرمایید
کمک کنید