【发布时间】:2015-02-11 00:49:42
【问题描述】:
private void restoreBtn_Click(object sender, EventArgs e)
{
try
{
if (databaseCmbBox.Text.CompareTo("") == 0)
{
MessageBox.Show("Please Select A Database");
return;
}
con = new SqlConnection(connectionString);
con.Open();
sql = "ALTER DATABASE " + databaseCmbBox.Text +" SET Single_User WITH Rollback Immediate ; RESTORE DATABASE " +
databaseCmbBox.Text + " FROM DISK = @PATH WITH REPLACE ; ALTER DATABASE " + databaseCmbBox.Text + " SET Multi_User ;";
comm.Parameters.AddWithValue("@PATH", databaseRestorePath.Text);
comm.CommandTimeout = 86400000;
//sql = "Alter Database "+databaseCmbBox.Text+" Set SINGLE_USER WITH ROLLBACK IMMEDIATE";
//sql += "RESTORE Database " + databaseCmbBox.Text + " FROM DISK = '" + databaseRestorePath.Text + "' WITH REPLACE";
comm = new SqlCommand(sql, con);
comm.ExecuteNonQuery();
con.Close();
con.Dispose();
MessageBox.Show("Database Succesfully Restored");
}
catch (Exception)
{
throw;
}
}
请这段代码抛出这个错误,
WindowsFormsApplication1.exe 中出现“System.Data.SqlClient.SqlException”类型的未处理异常
附加信息:必须声明标量变量“@PATH”。
关键字“with”附近的语法不正确。如果这个语句是一个公用表表达式、一个 xmlnamespaces 子句或一个更改跟踪上下文子句,则前面的语句必须以分号结束。
请问这段代码有什么错误?
【问题讨论】:
-
你向 comm 添加参数,然后创建新的 comm 实例!
-
非常感谢...我真的没有看到那个错误。现在可以了。
标签: c# sql sql-server winforms