使用SQLCommand时不起作用的sum(表)



当我运行代码时,结果将为'type'而不是名称之和。也尝试使用读取器内部的总和[(" type"(],并显示总和(类型(。它应该显示该特定名称的数量

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 Namen");
            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);
        }
}

在SQL中使用聚合函数时,应使用Group By。尝试此SQL-Command

 string Query = "SELECT SUM(Types) FROM main.Stats Group by column_name WHERE 
 Name = @Name";

据您所知,您始终可以通过列号引用列。即0在这种情况下。

但是,处理这一前进的最简单方法,并避免更改引起列号更改的查询的问题,就是为列提供一个别名。

如果您在查询中添加别名,请将其更改为 SELECT SUM(Types) as TypeSum FROM PersonName WHERE Name = @Name您应该发现可以使用Reader["TypeSum"]语法访问该值。

相关内容

  • 没有找到相关文章

最新更新