c# - 无法在 nvarchar 上调用方法

标签 c# asp.net sql-server-2008 tsql

我在我的 asp.net 应用程序中使用的简单 SELECT 语句有一个奇怪的问题。我使用 MSSQL 2008。

这个语句有效:

SelectSQL = "SELECT user_id, user_name, user_surname, user_code FROM Users WHERE user_group = '" + drop.SelectedItem.Value + "'";

然而,这一行抛出“无法调用 nvarchar 上的方法。

SelectSQL = "SELECT COUNT(DISTINCT Equations.eq_id) AS pocet_prikladu, Users.user_name, User.user_surname FROM Users LEFT JOIN Equations ON (Users.user_id = Equations.eq_user_id) WHERE Users.user_code = '" + drop.SelectedItem.Value + "' GROUP BY Users.user_id, Users.user_name, User.user_surname ";

这里有更多的代码,它停在最后一行

public void FillTable(Table tab, DropDownList drop)     //naplneni tabulky
    {
        SqlConnection pripojeni = new SqlConnection(connectionString);
        string SelectSQL = "";
        if (action == "groups")
        {
            SelectSQL = "SELECT user_id, user_name, user_surname, user_code FROM Users WHERE user_group = '" + drop.SelectedItem.Value + "'";
        }
        else
        {
            SelectSQL = "SELECT COUNT(DISTINCT Equations.eq_id) AS pocet_prikladu, Users.user_name, User.user_surname FROM Users LEFT JOIN Equations ON (Users.user_id = Equations.eq_user_id) WHERE Users.user_code = '" + drop.SelectedItem.Value + "' GROUP BY Users.user_id, Users.user_name, User.user_surname ";
        }
        try
        {
            SqlCommand prikaz = new SqlCommand(SelectSQL, pripojeni);
            pripojeni.Open();
            SqlDataReader vysledky = prikaz.ExecuteReader();

最佳答案

您可能需要将用户分隔为 [user]。 user 是保留关键字。

所以 [User].user_surname 等

另外正如 Chris 所说,将 User.user_surname 更改为 Users.user_surname。

我猜未定界的 [User] 问题导致了奇怪的错误

关于c# - 无法在 nvarchar 上调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10166196/

相关文章:

sql-server - 从 varchar 转换为 Nvarchar SQLServer 2008

c# - 如何从 DataGridView 接收 "scroll box"类型的滚动事件?

从 PDF 文件中删除文本的 C# 解决方案

c# - 在浏览器中打开 .mht/.mhtml 文件

c# - 用户在 IE 10 上收到 "AccessDenied"

c# - 如何访问 ActionExecutingContext 中 ActionDescriptor 的 MethodInfo.ReturnType?

sql-server-2008 - 使用 Management Studio 连接到 sql server

c# - 我可以为属性使用集合初始值设定项吗?

javascript - 单击后禁用 asp.net 按钮以防止双击

sql - 如何向数据库中的所有日期时间列添加一天?