PDA

View Full Version : سوال: چطوری اسم server رو بدست بیارم؟



gilas1368
دوشنبه 31 مرداد 1390, 13:09 عصر
با سلام خدمت اساتید گرامی

زه سوال دارم،زمانیکه VS رو نصب می کنی همراه اون یه نسخه از SQL SERVER هم نصب میشه که بسته به ورژن VS داره.حالا سوال من اینه اسم این server رو از کجا باید پیدا کرد؟:متفکر:


با تشکر

Esmail Solhkhah
دوشنبه 31 مرداد 1390, 13:16 عصر
با سلام خدمت اساتید گرامی

زه سوال دارم،زمانیکه VS رو نصب می کنی همراه اون یه نسخه از SQL SERVER هم نصب میشه که بسته به ورژن VS داره.حالا سوال من اینه اسم این server رو از کجا باید پیدا کرد؟:متفکر:


با تشکر


اگه منظورتون نام سروره که میشه نام کامپیوتر+نام اینستنس

مثلا

ComputerName\Sqlexpress


اگر هم منظورتون فایل نصبی SQL SERVER هست، این مسیر :

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\SqlExpres s\en

موفق باشید.

gilas1368
دوشنبه 31 مرداد 1390, 14:09 عصر
متشکر از پاسختون

من یه پایگاه با خود VS ساختم اما زمانیکه با Computer name\SQLEXPRESS می خوام به پایگاهم متصل بشم فقط پایگاه دادهایی که بصورت پیشفرض نصب شدن وجود دارن من چطور می تونم پایگاهم رو پیدا کنم (برای اتصال به کریستال می خوام،و باید حتما از Microsoft OLE DB provider for SQL SERVER استفاده کنم اما همون طور که گفتم اسم پایگاهم رو نمیاره)

Esmail Solhkhah
دوشنبه 31 مرداد 1390, 14:16 عصر
احتمالا شما یه اینستنس دیگه نصب دارید مثل اینستنس روت به اون کانکت بشید.

gilas1368
دوشنبه 31 مرداد 1390, 14:31 عصر
فکر نکنم،داخل رشته اتصال SQLEXPRESS نوشته شده و بعد آدرس پایگاه آورده شده. میشه بگید لیست اینستنس های نصب شده روی سیستم رو چه طوری بدست بیارم؟

alimanam
دوشنبه 31 مرداد 1390, 14:43 عصر
میشه بگید لیست اینستنس های نصب شده روی سیستم رو چه طوری بدست بیارم؟ البته من برنامه نویس VB هستم ولی فکر میکنم با کمی تغییر از کد زیر بتونین استفاده کنین .

اصل کد به زبان VB.NET

Private Function instanceInstalled() As String()
Dim rk As Microsoft.Win32.RegistryKey
rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey( _
"SOFTWARE\Microsoft\Microsoft SQL Server", True)
Dim inst() As String
inst = CType(rk.GetValue("InstalledInstances"), String())
Return inst
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim instances() As String
instances = instanceInstalled()
For Each s As String In instances
If s = "MSSQLSERVER" Then
ComboBox1.Items.Add("(local)")
Else
ComboBox1.Items.Add("(local)\" & s)
End If
Next
End Sub




فکر میکنم #C اینجوری باشه مطمئن نیستم :

private string[] instanceInstalled()
{
Microsoft.Win32.RegistryKey rk = null;
rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Microsoft SQL Server", true);
string[] inst = null;
inst = Convert.ToString(rk.GetValue("InstalledInstances"));
return inst;
}
private void Form1_Load(System.Object sender, System.EventArgs e)
{
string[] instances = null;
instances = instanceInstalled();
foreach (string s in instances) {
if (s == "MSSQLSERVER") {
ComboBox1.Items.Add("(local)");
} else {
ComboBox1.Items.Add("(local)\\" + s);
}
}
}

موفق باشید ./