Computechsoft Ответов: 2

Сохранение таблицы в базе данных master


я создаю базу данных с именем "TestScript", но когда я создаю таблицу
сохранение таблицы в базе данных "мастер"
Я хочу сохранить в базе данных "TestScript"

Что я уже пробовал:

Imports System.Configuration
Imports System.Data.SqlClient

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim SQLConnectionString As String = "Data Source=COMPUTECH-PC\SQLEXPRESS;Initial Catalog=Master;Integrated Security=true;User ID=sa;Password=", providerName = "System.Data.SqlClient"
       
        Using SqlCon As SqlConnection = New SqlConnection(SQLConnectionString)
              Dim str As String
            str = "CREATE DATABASE SQLSqript ON PRIMARY (NAME = SQLSqript_Data, FILENAME = 'C:\COMPUTECH\SQLSqript.mdf', " & _
            " SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) LOG ON(NAME = SQLSqript_Log, FILENAME = 'C:\COMPUTECH\SQLSqript.Log'," & _
            " SIZE = 1MB,MAXSIZE = 5MB, FILEGROWTH = 10%) "
            Dim cmd As SqlCommand = New SqlCommand(str, SqlCon)
            Try
                cmd.Connection.Open()
                cmd.ExecuteNonQuery()
                cmd.Connection.Close()
            Catch
                MsgBox(" Already installed database", MsgBoxStyle.Critical)
            End Try

            Try
                Dim sql As String
                sql = "CREATE TABLE [dbo].[Script]([Name] [nvarchar](50) NULL,[Address] [nvarchar](50) NULL,[Phone] [nvarchar](50) NULL) ON [PRIMARY]"

                cmd = New SqlCommand(sql, SqlCon) 
                cmd.Connection.Open()
                cmd.ExecuteNonQuery()
                cmd.Connection.Close()
            Catch
                MsgBox(" Already installed database", MsgBoxStyle.Critical)
            End Try
        End Using
    End Sub
End Class

2 Ответов

Рейтинг:
9

Computechsoft

Dim SQLConnectionStringTeble As String = "Data Source=SOFTLINKS-PC\SQLEXPRESS;Initial Catalog=Master;Integrated Security=true;User ID=sa;Password=", providerName = "System.Data.SqlClient"


**************************************************************************
Dim SQLConnectionStringTeble As String = "Data Source=SOFTLINKS-PC\SQLEXPRESS;Initial Catalog=TestScript;Integrated Security=true;User ID=sa;Password=", providerName = "System.Data.SqlClient"


Рейтинг:
18

OriginalGriff

Есть пара вещей:
1) чтобы исправить вашу проблему, самый простой способ - использовать два отдельных объекта SqlConnection-один, который подключается к Master, как и ваш существующий, и один с начальным каталогом, установленным на SQLSqript Используйте существующую только для создания БД, а затем новую-для создания таблиц.
2) Не используйте sa пользователь: создайте новые учетные записи для пользователей вашей БД с различными уровнями доступа и отключите sa счет полностью. Вы должны только когда-либо подключаться к учетной записи, которая имеет только достаточное разрешение для выполнения этой работы, никогда не "полный доступ". И sa аккаунт-это тот, который хакеры начнут искать, так как само его присутствие указывает на небезопасную систему!


Computechsoft

Первый запрос неверен, потому что я использую Catalog="Master"
Второй запрос-правильный каталог="TestScript"
Для этого таблица была сохранена в главной таблице
Спасибо OriginalGriff за решение

OriginalGriff

Всегда пожалуйста!