簡體   English   中英

使用 VB 腳本恢復 SQL .bak 文件?

[英]Restore a SQL .bak file using a VB script?

我正在探索使用戶能夠從項目中恢復數據庫的方法。

我有一個項目,我想和數據庫一起發布,以便沒有經驗的用戶可以使用我開發的程序。

代碼是用 VB 腳本編寫的,我可以發布 VB 代碼,但我發現很難將數據庫包含在 ClickOnce 方法中。

我一直在想,我可以將 .bak 文件復制到客戶端的 PC,然后運行 ​​VB 腳本,將數據庫恢復到安裝在 ClickOnce 安裝中的 SQLserver。

有沒有人做過這個?

我確實在網上找到了一些看起來很有希望的東西,但它是為 .NET 框架 2.0 或 3.0 編寫的,我發現當我添加System.Data.SqlClient 4.8.0 ,出現以下錯誤:

嚴重性代碼描述項目文件行抑制狀態錯誤無法安裝包“System.Data.SqlClient 4.8.0”。 您正在嘗試將此包安裝到以“.NETFramework,Version=v2.0”為目標的項目中,但該包不包含任何與該框架兼容的程序集引用或內容文件。 有關更多信息,請聯系軟件包作者。

我得到代碼的網站: http : //www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1433&lngWId=10

請問有人可以幫忙嗎?

通過 wscript.exe 運行的 VBScript 是幾十年前的技術

VB.NET 會被編譯成自定義 .exe 或 .dll,是 2005+(不包括在過去幾年中的 .net 核心,但我沒有接觸過它)

dim connectionString as string = "Provider=MSOLEDBSQL;Server=localhost;Database=myDataBase;Trusted_Connection=yes;"
dim connection as New OleDbConnection(connectionString)
Dim cmd As New OleDbCommand
Dim query As String = "RESTORE DATABASE AdventureWorks2012 FROM AdventureWorksBackups;"

Try
    cmd.CommandText = query
    cmd.ExecuteNonQuery()
Catch ex As Exception
    MsgBox("something bad happened")

End Try

參考位

ExecuteNonQuery https://docs.microsoft.com/en-us/dotnet/api/system.data.oledb.oledbcommand.executenonquery?view=netframework-4.8

恢復數據庫https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-transact-sql?view=sql-server-ver15

如果您不使用 OLEDB,或者需要不同的提供程序,則根據需要使用連接字符串進行 futz,但這是一般方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM