sqlconnection 字符串查询不支持关键字
Keyword not supported on sqlconnection string query
我需要你的帮助(眼睛)看看我哪里错了。
所以,我遇到了这个错误...
这是我正在做的...
一个登录的用户,有一个有或没有一些权限的角色。
当他输入表单时,应用程序会根据他的角色检查用户权限。在这种情况下,它会检查导航权限并禁用不允许用户添加新数据的 "Add New" 按钮。
我必须说这个查询或类似的,在其他情况下工作得很好,并编译成 SQL 查询,它 return 值 0 或 1 正确。
这是加载表单中的代码。
Extensions.UserInfo.ActiveButtons(Extensions.UserInfo.CurrentLoggedUser);
ActiveButtons 是一种静态方法,可根据登录用户禁用特定按钮...
public static bool ActiveButtons(string user)
{
if (CanNavigate(CurrentLoggedUser) == true)
{
foreach (var button in Buttons)
{
if(button.Name == "novoToolStripMenuItem")
{
button.Visible = false;
}
else
{
button.Visible = true;
}
}
return true;
}
else
{
foreach (var button in Buttons)
{
button.Visible = false;
}
return false;
}
}
CanNavigate 方法检查 Role Table 的权限。她的密码...
public static bool CanNavigate(string user)
{
bool result;
string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
string query = "SELECT tblRole.Navigate FROM tblRole INNER JOIN tblUser ON tblRole.RoleID = tblUser.RoleID WHERE tblUser.Username = @Username";
using (var con = new SqlConnection(query.ToString()))
{
using (var cmd = new SqlCommand(str, con))
{
con.Open();
cmd.Parameters.AddWithValue("@Username", user);
result = (bool)cmd.ExecuteScalar();
return result;
}
}
}
而且,你看到了吗,错误是在查询 SqlConnection 的这个方法中...
所以,它有什么问题?
在调试时,用户正在获取正确的 CurrentLoggedUser!
谢谢。
您可能交换了 str
和 query
变量。
using (var con = new SqlConnection(str))
using (var cmd = new SqlCommand(query, con))
看起来更合理
我需要你的帮助(眼睛)看看我哪里错了。
所以,我遇到了这个错误...
这是我正在做的...
一个登录的用户,有一个有或没有一些权限的角色。
当他输入表单时,应用程序会根据他的角色检查用户权限。在这种情况下,它会检查导航权限并禁用不允许用户添加新数据的 "Add New" 按钮。
我必须说这个查询或类似的,在其他情况下工作得很好,并编译成 SQL 查询,它 return 值 0 或 1 正确。
这是加载表单中的代码。
Extensions.UserInfo.ActiveButtons(Extensions.UserInfo.CurrentLoggedUser);
ActiveButtons 是一种静态方法,可根据登录用户禁用特定按钮...
public static bool ActiveButtons(string user)
{
if (CanNavigate(CurrentLoggedUser) == true)
{
foreach (var button in Buttons)
{
if(button.Name == "novoToolStripMenuItem")
{
button.Visible = false;
}
else
{
button.Visible = true;
}
}
return true;
}
else
{
foreach (var button in Buttons)
{
button.Visible = false;
}
return false;
}
}
CanNavigate 方法检查 Role Table 的权限。她的密码...
public static bool CanNavigate(string user)
{
bool result;
string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
string query = "SELECT tblRole.Navigate FROM tblRole INNER JOIN tblUser ON tblRole.RoleID = tblUser.RoleID WHERE tblUser.Username = @Username";
using (var con = new SqlConnection(query.ToString()))
{
using (var cmd = new SqlCommand(str, con))
{
con.Open();
cmd.Parameters.AddWithValue("@Username", user);
result = (bool)cmd.ExecuteScalar();
return result;
}
}
}
而且,你看到了吗,错误是在查询 SqlConnection 的这个方法中...
所以,它有什么问题?
在调试时,用户正在获取正确的 CurrentLoggedUser!
谢谢。
您可能交换了 str
和 query
变量。
using (var con = new SqlConnection(str))
using (var cmd = new SqlCommand(query, con))
看起来更合理