VB.net在连接到数据库之前检查数据库是否存在

12 浏览
0 Comments

VB.net在连接到数据库之前检查数据库是否存在

我在这个网址上找到了以下查询,用于判断数据库表是否已经创建:\n

if db_id('thedbName') is not null
   --我的代码 :)
   print '数据库存在'
else
   print '不存在'

\n现在我想在我的VB.net应用程序中使用相同的查询。这是我当前在连接数据库时的代码(在进行这一切之前我想先判断数据库是否存在):\n

Dim cn As SqlConnection = New SqlConnection("Data Source=DAVIDSDESKTOP;" & _
                                            "Initial Catalog=thedbName;" & _
                                            "Integrated Security=True;" & _
                                            "Pooling=False")
    Dim sql As String = "if db_id('thedbName') is not null " & vbCrLf & _
                            "Print() '存在' " & vbCrLf & _
                        "else " & vbCrLf & _
                            "Print() '不存在'"
    Dim cmd As SqlCommand = New SqlCommand(sql, cn)
    cmd.Connection.Open()
    Dim blah As String = cmd.ExecuteNonQuery()
    cmd.Connection.Close()

\n当然,问题是我必须事先知道数据库的名称才能连接到数据库。\n然后我似乎可以使用以下代码连接到master数据库:\n

Dim cn As SqlConnection = New SqlConnection("Data Source=DAVIDSDESKTOP;" & _
                                            "Integrated Security=True;" & _
                                            "Pooling=False")
    Dim sql As String = "if db_id('thedbName') is not null " & vbCrLf & _
                            "Print() '存在' " & vbCrLf & _
                        "else " & vbCrLf & _
                            "Print() '不存在'"
    Dim cmd As SqlCommand = New SqlCommand(sql, cn)
    cmd.Connection.Open()
    Dim blah As String = cmd.ExecuteNonQuery()
    cmd.Connection.Close()

\n但是,这个查询在Dim blah As String = cmd.ExecuteNonQuery()处出现错误:\n

\n附加信息:附近的语法不正确。\n

\n所以我不确定在查询中缺少什么,以解决这个问题。\n想知道如何使查询返回\'存在\'或\'不存在\'

0
0 Comments

在VB.net中,有时候需要在连接到数据库之前先检查数据库是否存在。这种情况下,可以使用以下方法来解决。

首先,可以使用以下SQL查询语句来检查数据库是否存在:

select * from sys.databases where [name] = 'thedbName'

如果查询返回了一行数据,那么说明数据库存在;如果没有返回数据,那么说明数据库不存在。

另外,如果需要检查数据库中是否存在某个表,可以使用以下SQL查询语句:

select * from sys.objects where [name] = 'theTableName' and type_desc = 'USER_TABLE'

通过以上方法,可以在连接到数据库之前先检查数据库或表是否存在,从而避免出现连接到不存在的数据库或表的错误。

0
0 Comments

在连接到数据库之前,需要检查数据库是否存在,这是一个常见的问题。以下是出现这个问题的原因以及解决方法。

出现的原因:

在代码中,使用了一个名为Print()的函数,但是应该使用Print,即去掉括号。这个错误导致代码无法正确执行。

解决方法:

更好的解决方法是不使用Print,而是使用select来检查数据库是否存在。可以使用以下代码:

Dim sql As String = "if db_id('thedbName') is not null " & vbCrLf & _

"select 'exists' " & vbCrLf & _

"else " & vbCrLf & _

"select 'nope'"

Dim blah As String = CType(cmd.ExecuteScalar(), string)

这段代码会执行一个SQL查询,如果数据库存在,则返回'exists',否则返回'nope'。

此外,之前使用的ExecuteNonQuery函数返回的是更新和插入操作所影响的行数,而你执行的是一个查询操作。应该使用ExecuteScalar函数来获取查询结果。这个函数会返回第一行第一列的值。由于上面的查询只返回一行一列的结果,所以它会返回相应的值。

感谢你发现了这个问题。现在没有错误了,但是它仍然返回-1而不是'exists'或'nope'。

太棒了!哈哈。感谢你提供的示例代码。现在它可以正常工作了!

0