我想用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;
}