【发布时间】:2021-12-12 02:32:51
【问题描述】:
发生错误的我的连接字符串
<add name="SmartSales_local" connectionString="Server=.\SQLEXPRESS;Integrated Security=true;AttachDbFileName=|DataDirectory|\SmartSales.mdf;"
providerName="System.Data.SqlClient" />
My Database Backup Code in C#
con.ConnectionString = MyConnection();
String receiptdir = @"D:\SmatSalesReports\Backup";
if (!Directory.Exists(receiptdir))
{
Directory.CreateDirectory(receiptdir);
}
string dbname = con.Database.ToString();
string backupdb = "BACKUP DATABASE [" + dbname + "] TO DISK='" + receiptdir + "\\" + "SmartSales" + "-" + DateTime.Now.ToString("yyyy-MM-dd--HH-mm-ss") + ".bak'";
con.Open();
cm = new SqlCommand(backupdb, con);
cm.CommandTimeout = 120;
cm.ExecuteNonQuery();
con.Close();
我在尝试将 sql server 数据库备份到磁盘时收到此错误。其他一切都可以在数据库中“插入/更新/删除”正常工作。 当我尝试备份数据库时,它给了我这个错误。 Screenshot of the error described
对象或列名丢失或为空。对于 SELECT INTO 语句,验证每一列都有一个名称。对于其他语句,请查找空别名。不允许使用定义为 "" 或 [] 的别名。将别名更改为有效名称。
编辑后添加的新信息
我的连接字符串一切正常
<add name="SmartSales" connectionString="Data Source=LAPTOP-GPJ5DM2V\SQLEXPRESS;Initial Catalog=SmartSales;Integrated Security=True"
providerName="System.Data.SqlClient" />
当我使用此连接字符串时,一切正常。但它在安装 SSMS 并在 SSMS 中打开数据库时有效。
【问题讨论】:
-
在
con.Open()所在的行放一个断点,查看backupdb此时的值。它是有效的 SQL 并且在 SSMS 中运行吗?该错误听起来与您发布的代码无关。你确定你的代码中没有混入一些事件处理程序吗? -
@squillman 是的,它在 SSMS 中成功运行。
标签: c# sql-server visual-studio entity-framework linq-to-sql