我有一個問題。我嘗試創建本地數據庫的數據庫備份。以...開頭的標識符太長。最大長度是128
當我在VS中啓動程序時,一切正常,因爲數據庫的路徑少於128個字符。但是,當我發佈並安裝應用程序時,路徑長度超過128個字符,並且出現該錯誤。
在網上我發現了兩個解決方案:
- 要使用單引號
- 設置:
SET QUOTED_IDENTIFIER OFF
&SET ANSI_NULLS ON
但我儘量取其組合,我無法得到它的權利。
任何人都可以告訴我如何得到它的權利?
我的代碼:
internal void CreateDbBackup(string DbBackupPath)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlCommand GetDataFile = new SqlCommand();
GetDataFile.Connection = con;
GetDataFile.CommandText = "select physical_name from sys.database_files where type = 0";
con.Open();
string YourDataFile = (string)GetDataFile.ExecuteScalar();
con.Close();
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = string.Format(@"BACKUP DATABASE [" + YourDataFile + "] TO DISK = N'{0}' WITH INIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT", DbBackupPath);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
您可以將路徑縮短到128個字符或更少嗎?這似乎是最簡單的解決方案。 – Tim
將您的'cmd.CommandText' =更改爲以下內容 cmd.CommandText = string.Format(@「BACKUP DATABASE [{1}] TO DISK = N'{0}'WITH INIT,NOUNLOAD,NOSKIP,STATS = 10 ,NOFORMAT「,DbBackupPath,YourDataFile);'學會正確使用string.Formatting {}'並選擇一個較短的文件路徑或升級項目以使用.net'4.6.x' – MethodMan
我更改了命令文本,並將項目升級到.NET 4.6.1。但仍然有這個錯誤。 我不知道如何縮短路徑,因爲當我發佈並運行它進行安裝時,它不會提供我選擇安裝路徑:/ 與數據庫隔開的其他通信我使用VS數據集環境(將查詢添加到表格適配器),這一切都工作,我甚至嘗試使存儲過程做備份,而不是調用它,但我認爲我做了錯誤的sintaks: –