SUM (таблица) не работает при использовании SqlCommand - PullRequest
0 голосов
/ 22 мая 2019

Когда я запускаю код, результатом будет «Тип» вместо суммы имени.Попытался также сделать SUM внутри Reader [("Типы")], и он отображает SUM (Типы).Он должен отображать количество этого конкретного имени

Код внутри c #:

public void DisplayName()
{
        try
        {
            string Connection = @"Data Source=local;Initial Catalog=Project;Integrated Security=True";
            SqlConnection Connect = new SqlConnection(Connection);

            string Name;

            Console.WriteLine("\nShowing Name\n");

            Console.WriteLine("Enter name type: \n");
            country = Console.ReadLine();

            ConnectingDatabase.Open();

            string Query = "SELECT SUM(Types) FROM PersonName WHERE Name = @Name";

            SqlCommand Commands = new SqlCommand(Query, ConnectingDatabase, ConnectingDatabase.BeginTransaction());

            Commands.Parameters.Add(new SqlParameter("@Name", country));

            SqlDataReader Reader = ParaComm.ExecuteReader();

            if (Reader.Read())
            {
                Console.WriteLine("Your name is " + name + " with sum of {0}\n", Reader[("Types")]);
            }

            Reader.Close();
            ParaComm.Transaction.Commit();
            Connect.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
}

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Как вы узнали, вы всегда можете ссылаться на столбец по номеру столбца.то есть 0 в этом случае.

Однако самый простой способ справиться с этим движением вперед и избежать проблем с изменениями в запросе, которые приводят к изменению номеров столбцов, - это предоставить псевдоним для столбца.

Если выдобавьте псевдоним к вашему запросу, изменив его на SELECT SUM(Types) as TypeSum FROM PersonName WHERE Name = @Name, вы обнаружите, что можете получить доступ к значению, используя синтаксис Reader["TypeSum"].

0 голосов
/ 22 мая 2019

Вы должны использовать Group By при использовании функции aggregeate в sql.Попробуйте Sql-Command

 string Query = "SELECT SUM(Types) FROM main.Stats Group by column_name WHERE 
 Name = @Name";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...