sql-server - 我的分离代码正确吗?

标签 sql-server vb.net

我正在使用以下代码将我的数据库与 SQL Server Express 分离。如果有什么不对的地方请指教。我收到一个错误。

"Could not locate entry in sysdatabases for database 'EXEC master'. No entry found with that name. Make sure that the name is entered correctly."

我使用的代码是

 Dim conn2 As New SqlConnection("Server=MyHomeServer\SQLExpress;Database=master;Trusted_Connection=False;User ID=sa;Password=abc123;")
    Dim cmd2 As New SqlCommand("", conn2)
    cmd2.CommandType = CommandType.StoredProcedure
    cmd2.CommandText = "EXEC master.dbo.sp_detach_db @dbname = N'MyHomeDBTestPWD'"
    conn2.Open()
    cmd2.Connection = conn2
    cmd2.ExecuteNonQuery()

最佳答案

你的处理方式是错误的。当您只需要添加存储过程名称时,您就在 CommandText 中分配了正确的 SQL 语句。然后,您需要将 Parameter 添加到您的 SqlCommand

Dim cmd2 As New SqlCommand("", conn2) 
cmd2.CommandType = CommandType.StoredProcedure
cmd2.CommandText = "sp_detach_db"
cmd2.Parameters.AddWithValue("@dbname", "MyHomeDBTestPWD")
cmd2.ExecuteNonQuery()

如果您想执行 SQL 语句,则只需将 CommandType 更改为 CommandType.Text

关于sql-server - 我的分离代码正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9262501/

相关文章:

.net - 如果数据库中的所有列都是 varchars,使用 SqlDbType.VarChar 而不是 SqlDbType.NVarChar 有什么好处

sql-server - SQL Server 内部是如何处理 Varchar 的?

c# - VB.net 界面无法编译,为什么?

asp.net - vb.net 中的登录页面帮助

mysql - 什么可能导致运行时我的 Crystal Report 上缺少数据库字段?

c# - 如何使用 vb.net 或 asp.net 或 C# 通过 USB 电缆从连接到计算机的数码相机拍照?

java - Hibernate + Spring 从 MySQL 迁移到 SQL Server

sql - 每个表中的列名必须是唯一的。同时将表数据从一个表复制到sql server中的另一个表

sql-server - 使用sql分割字母和数字

vb.net - 为什么动态 XML 文字不继承默认命名空间