GO 附近的语法不正确(基于关闭登录创建用户)

Incorrect syntax near GO (Creating users based off login)

我正在尝试根据根 sql 服务器上的登录在数据库中创建用户,但我不断收到语法错误。除非 SqlCommand 需要与 SSMS 中的实际 T-SQL 不同类型的语法,否则我在这个简单的查询中看不到问题。

 var cmd = new SqlCommand("USE " + databaseName + " GO CREATE USER [" + txtUser.Text + "] FOR LOGIN ["
                + txtUser.Text + "] GO", conn);  

我的连接字符串如下所示

private string GetConnectionString(string initialCatalog = "")
    {
        return "Data Source=" + txtInstance.Text.Trim() + ";User ID=" + txtUser.Text.Trim() +
            ";" + (initialCatalog != "" ? "Initial Catalog=" + initialCatalog : "")
            + "Password=" + txtPass.Text.Trim() + ";Network Library=dbmssocn;";
    }  

我不是在传递它 initialCatalog

我确实尝试从实际命令文本中删除 USE 语句,而是将 dbname 传递给 GetConnectionString 方法,以便将其设置为初始目录,但后来我得到 用户x登录失败

我假设这是因为用户不在给定的数据库中。鉴于用户 x 是 sql 服务器上具有完全权限的登录名,我如何在绑定到此登录名的 SQL 服务器内的数据库上创建用户拥有全部权利?

编辑
我知道我的代码容易受到注入攻击;然而,这是一个只有我最有可能使用的内部助手应用程序。

最好分别执行这两个查询

var cmd = new SqlCommand("USE " + databaseName , conn);  
cmd.ExecuteNonQuery();

cmd = new SqlCommand("CREATE USER [" + txtUser.Text + "] FOR LOGIN ["
            + txtUser.Text + "]", conn);  
cmd.ExecuteNonQuery();