我需要创建具有特定路径的SQL数据库 我找到了这段代码:
Dim fullpath As String = TextBox4.Text & TextBox1.Text & "_data.mdf"
Dim fullpath1 As String = TextBox4.Text & TextBox1.Text & "_log.ldf"
Dim ExtLog As String = TextBox1.Text & "_Log"
Dim ExtDat As String = TextBox1.Text & "_Data"
Dim myConn As SqlConnection = New SqlConnection("Server='" & ComboBox8.Text & "';uid='" & TextBox14.Text & "';pwd='" & TextBox13.Text & "';database=master")
Dim str As String = "CREATE DATABASE " & TextBox1.Text & " ON PRIMARY (NAME = " & ExtDat & ",FILENAME = " & fullpath & ", SIZE = 3MB, MAXSIZE = 10MB, FILEGROWTH = 10%) LOG ON (NAME = " & ExtLog & ", FILENAME = " & fullpath1 & ", SIZE = 1MB,MAXSIZE = 5MB, FILEGROWTH = 10%) "
Dim myCommand As SqlCommand = New SqlCommand(str, myConn)
Try
myConn.Open()
myCommand.ExecuteNonQuery()
MessageBox.Show("Database is created successfully", "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.ToString())
Finally
If (myConn.State = ConnectionState.Open) Then
myConn.Close()
End If
End Try
其中:
combobox1= "local", textbox14= "sqlusername", textbox13=
"sqlpassword", textbox1= "newSQL", textbox4= "d:\MyFolder\"
我收到错误说:'d:'附近的语法不正确,标签'd'已经被声明了。标签名称在查询批处理中必须是唯一的。 但是当我使用下面的str时它工作正常:
str = "CREATE DATABASE newSQL ON PRIMARY (NAME = newSQL_Data,FILENAME = 'D:\MyFolder\newSQLData.mdf', SIZE = 3MB, MAXSIZE = 10MB, FILEGROWTH = 10%) LOG ON (NAME = newSQL_Log, FILENAME = 'D:\MyFolder\newSQLLog.ldf', SIZE = 1MB,MAXSIZE = 5MB, FILEGROWTH = 10%) "
有人可以帮忙吗?
答案 0 :(得分:0)
Dim fullpath As String = TextBox4.Text + TextBox1.Text + "_data.mdf"
Dim fullpath1 As String = TextBox4.Text + TextBox1.Text + "_log.ldf"
Dim ExtLog As String = TextBox1.Text + "_Log"
Dim ExtDat As String = TextBox1.Text + "_Data"
Dim myConn As New SqlConnection("Server='" + ComboBox8.Text + "';uid='" + TextBox14.Text + "';pwd='" + TextBox13.Text + "';database=master")
Dim str As String = (Convert.ToString((Convert.ToString((Convert.ToString((Convert.ToString("CREATE DATABASE " + TextBox1.Text + " ON PRIMARY (NAME = ") & ExtDat) + ",FILENAME = ") & fullpath) + ", SIZE = 3MB, MAXSIZE = 10MB, FILEGROWTH = 10%) LOG ON (NAME = ") & ExtLog) + ", FILENAME = ") & fullpath1) + ", SIZE = 1MB,MAXSIZE = 5MB, FILEGROWTH = 10%) "
Try
myConn.Open()
ExecuteSQLStmt(str,TextBox1.Text)
MessageBox.Show("Database is created successfully", "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.ToString())
Finally
If (myConn.State = ConnectionState.Open) Then
myConn.Close()
End If
End Try
Private Sub ExecuteSQLStmt(sql As String,mydb As String)
If myConn.State = ConnectionState.Open Then
myConn.Close()
End If
ConnectionString = "Integrated Security=SSPI;" + "Initial Catalog="+ mydb +"; + "Data Source=localhost;"
myConn.ConnectionString = ConnectionString
myConn.Open()
cmd = New SqlCommand(sql, myConn)
Try
cmd.ExecuteNonQuery()
Catch ae As SqlException
MessageBox.Show(ae.Message.ToString())
End Try
End Sub
尝试这是它的工作