2016-08-05 2 views
0

Мой код создает базу данных, затем создает таблицы для базы данных. Иногда, когда я запускаю код, он работает. В других случаях создается база данных, но когда она пытается создать таблицы, возникает исключение: «Ошибка входа в систему для пользователя»Ошибка входа в 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 
+0

Я добавил еще странное происшествие: Код для создания таблицы всегда работает, когда я его в качестве отдельной кнопки после того, как база данных создается, даже если он имеет проблемы, когда я размещаю его сразу после создания базы данных. –

ответ

0

Это может быть проблемой объединения. Ваш начальный каталог может быть не установлен, и в результате вы можете попытаться создать эти таблицы в Master. Попробуйте полностью определить имена таблиц и посмотрите, как они исправляют проблемы. CREATE TABLE TestDB.dbo.stockUsed ... и т.д. и т.п.

+0

Это не сработало, у меня все еще есть исключение, не могу открыть базу данных, логин не удался для пользователя –

Смежные вопросы