在 C# 中创建具有域的数据库用户不起作用



我想用c#创建一个数据库用户。在Microsoft SQL Server Management Studio中,我可以使用以下命令创建一个:

CREATE USER [DOMAINuser]

但是当我尝试在c#中做同样的事情时,我不能在命令中发送一个反斜杠。

string query = @"CREATE USER [DOMAINuser]";

我已经尝试了query.Replace("\\", "\")query.Replace(@"\\", @"\")之类的东西,但对我来说都不起作用。我总是得到一个错误:

'\'附近语法错误。

这就像我在SQL Server Management Studio中编写CREATE USER [DOMAIN\\user]一样。

不知怎么的,我不能在查询中只传递一个反斜杠。

谁能给我点提示?

这是我的实际代码:

public SqlConnection Conn;    
public bool CreateUser(string LoginName)
{
string dom_login = Domain + "\" + LoginName;
string query = @"CREATE USER [" + dom_login.Replace("\",@"") + "]";
// now query should be okay, so send to sql connection
DataTable dt = new DataTable();
if (Conn.State == ConnectionState.Closed)
Conn.Open();
try
{
SqlDataAdapter sDataAsp = new SqlDataAdapter(query, Conn);          
sDataAsp.Fill(dt);
}
catch (Exception ex)
{
// Here i get the syntax error
string error = ex.Message;
return false;
}
return true;
}  

已解决:

private bool ExecuteQuery(string domain, string user)
{
try
{
string dom_login = domain + @"" + user; 
string query = @"CREATE USER [" + dom_login + "]";
if (Conn.State == ConnectionState.Closed)
Conn.Open();
SqlCommand command = new SqlCommand(query, Conn);
command.ExecuteNonQuery();
}
catch (Exception ex)
{
error = ex.Message;
return false;
}
return true;
}

相关内容

  • 没有找到相关文章

最新更新