3

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();
4

1 に答える 1

4

ユーザーを [user] として区切る必要がある場合があります。ユーザーは予約済みのキーワードです。

[User].user_surname など

また、クリスがタイプミスを言うように、User.user_surname を Users.user_surname に変更します。

区切りのない[User]の問題が奇妙なエラーを引き起こしていると思います

于 2012-04-15T21:26:13.163 に答える