我的代码创建一个数据库,然后在数据库中创建表。有时候我运行它的代码时就起作用了。其他时候,数据库是创建的,但是当它试图创建表时会抛出一个异常:用户'登录失败'SQL登录失败,在创建表
奇怪的是,它有时会工作并创建表,然后有时候会抛出这个错误,而无需更改任何代码。
编辑:亦作表创建的代码时,我把它当作是创建数据库后一个单独的按钮,尽管它有,当我把它保存在数据库创建后问题始终有效。
我使用的集成安全性。如果有人可以让我知道为什么会出现这个问题,我该如何解决这个问题,这将是值得赞赏的。
数据库创建代码:
Dim str As String
'"Data Source=(Local)\SQLEXPRESS;Initial Catalog=TestDB;Integrated Security=True"
Dim myConn As SqlConnection = New SqlConnection("Server=(local)\SQLEXPRESS;Integrated Security=True;database=master")
str = "Create Database TestDB"
Dim myCommand As SqlCommand = New SqlCommand(str, myConn)
Try
myConn.Open()
myCommand.ExecuteNonQuery()
Dim result1 As DialogResult = MessageBox.Show("Database is created successfully",
"MyProgram", MessageBoxButtons.OK,
MessageBoxIcon.Information)
If result1 = DialogResult.OK Then
End If
Catch ex As Exception
MessageBox.Show(ex.ToString())
Finally
If (myConn.State = ConnectionState.Open) Then
myConn.Close()
End If
Me.Close()
End Try
表创建代码:
Try
Dim con As New SqlConnection
Dim cmd As New SqlCommand
con.ConnectionString = "Data Source=(Local)\SQLEXPRESS;Initial Catalog=TestDB;Integrated Security=True"
con.Open()
cmd.Connection = con
cmd.CommandText = "CREATE TABLE parts" + "(partID nvarchar(50), description nvarchar(50), color nvarchar(50))"
cmd.ExecuteNonQuery()
cmd.CommandText = "CREATE TABLE stockNew" + "(stockID1 nvarchar(50), stockID2 nvarchar(50), stockID3 nvarchar(50))"
cmd.ExecuteNonQuery()
cmd.CommandText = "CREATE TABLE stockUsed" + "(stockID1 nvarchar(50), stockID2 nvarchar(50), stockID3 nvarchar(50))"
cmd.ExecuteNonQuery()
cmd.CommandText = "CREATE TABLE activationCode" + "(blah nvarchar(50))"
cmd.ExecuteNonQuery()
MessageBox.Show("Tables have been created successfully", "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
我增加了另一个奇怪的发生: 表创建代码总是工作,当我把它作为一个单独的按钮后,数据库创建,即使它当我在数据库创建后立即放置它时会出现问题。 –