ورود

View Full Version : حرفه ای: تشخصی وجود بانک اطلاعاتی سال مربوطه در SQL Server



ali_najari
شنبه 09 مرداد 1389, 23:37 عصر
چطوری میشه فهمید که آیا بانکی با نام Sal_1389 وجود داره یا نه

نمیخوام از SQLDemo استفاده کنم

آیا راهی وجود داره؟

vbworm
یک شنبه 10 مرداد 1389, 00:10 صبح
این حتما کارتون رو راه میندازه :چشمک:

http://www.freevbcode.com/ShowCode.asp?ID=2226

mohammad.moosaei
یک شنبه 10 مرداد 1389, 02:26 صبح
چطوری میشه فهمید که آیا بانکی با نام Sal_1389 وجود داره یا نه

نمیخوام از SQLDemo استفاده کنم

آیا راهی وجود داره؟


سلام دوست من :

شما میتونید از این query استفاده کنید . فقط کافیه که اونو تو برنامتون توسط یک Sqlcommand استفاده کنید . و بعد چک کنید که چیزی برمی گردونه یا نه ؟ اگه برنگردوند در ین صورت دبتابیسی با این نام هم وجود نداره ؟




USE [master]

SELECT d.[name]
FROM sys.databases d
WHERE d.[name] LIKE N'Sal_1389'




اینم یک تابع برای این کار با استفاده از Query بالا :



Private Function DBExists(ByVal dbName As String) As Boolean

Dim cn As New SqlConnection("Server=.\sqlexpress;database=master;integrated security=true")

cn.Open()

Dim cmdString As String
cmdString = "USE [master] " + vbNewLine _
+ " " + vbNewLine _
+ "SELECT TOP 1 d.[name] " + vbNewLine _
+ "FROM sys.databases d " + vbNewLine _
+ "WHERE d.[name] LIKE N'" & dbName & "'"

Dim dc = New SqlCommand(cmdString, cn)
Dim dr As SqlDataReader = dc.ExecuteReader

Dim result As Boolean = dr.Read

cn.Close()

Return result

End Function

ali_najari
یک شنبه 10 مرداد 1389, 09:20 صبح
سلام دوست من :

شما میتونید از این query استفاده کنید . فقط کافیه که اونو تو برنامتون توسط یک Sqlcommand استفاده کنید . و بعد چک کنید که چیزی برمی گردونه یا نه ؟ اگه برنگردوند در ین صورت دبتابیسی با این نام هم وجود نداره ؟




USE [master]

SELECT d.[name]
FROM sys.databases d
WHERE d.[name] LIKE N'Sal_1389'




اینم یک تابع برای این کار با استفاده از Query بالا :



Private Function DBExists(ByVal dbName As String) As Boolean

Dim cn As New SqlConnection("Server=.\sqlexpress;database=master;integrated security=true")

cn.Open()

Dim cmdString As String
cmdString = "USE [master] " + vbNewLine _
+ " " + vbNewLine _
+ "SELECT TOP 1 d.[name] " + vbNewLine _
+ "FROM sys.databases d " + vbNewLine _
+ "WHERE d.[name] LIKE N'" & dbName & "'"

Dim dc = New SqlCommand(cmdString, cn)
Dim dr As SqlDataReader = dc.ExecuteReader

Dim result As Boolean = dr.Read

cn.Close()

Return result

End Function


سلام
آقا خيلي ممنون
ميدوني من اين كد رو استفاده ميكردم ولي نه توي Datareader من ميخواستم با اين كد ليست تمام ديتابيس هاي موجود رو بخونم و بريزم توي Datatable ولي هيچ ركوردي رو نميخوند البته يكم كد من تفاوت داشت
اينطوري استفاده ميكردم

Use Master;Select Db.[name] From Sys.databases DB"

mohammad.moosaei
یک شنبه 10 مرداد 1389, 14:22 عصر
سلام
آقا خيلي ممنون
ميدوني من اين كد رو استفاده ميكردم ولي نه توي Datareader من ميخواستم با اين كد ليست تمام ديتابيس هاي موجود رو بخونم و بريزم توي Datatable ولي هيچ ركوردي رو نميخوند البته يكم كد من تفاوت داشت
اينطوري استفاده ميكردم

Use Master;Select Db.[name] From Sys.databases DB"


سلام:

این query که شما نوشتی کاملا درسته چون امتحانش کردم :

اینم یه تابع با Query خودت برای لیست همه دیتابیسها :





Private Sub GetDbList(ByRef dgv As DataGridView)

Dim cn As New SqlConnection("Server=.\sqlexpress;database=master;integrated security=true")

cn.Open()

Dim cmdString As String = "Use Master;Select Db.[name] From Sys.databases DB"

Dim dc = New SqlCommand(cmdString, cn)
Dim dr As SqlDataReader = dc.ExecuteReader

Dim dt As New DataTable
dt.Load(dr)

dgv.DataSource = dt

cn.Close()

End Sub