C# Datareader不使用选择上限和按上限分组

C# Datareader不使用选择上限和按上限分组,c#,sql,database,sqldatareader,C#,Sql,Database,Sqldatareader,我正在尝试使用visual Studio 2015 Express中的c#从Microsoft SQL数据库获取数据。到目前为止,我使用的所有命令都有效。现在,我尝试使用SqlDataReader执行此命令: SELECT UPPER(Company) FROM MY_TABLE GROUP BY UPPER(Company) HAVING COUNT(*) > 0; 这是我的密码: //open the sql connection sqlConn.Open(); /* *

我正在尝试使用visual Studio 2015 Express中的c#从Microsoft SQL数据库获取数据。到目前为止,我使用的所有命令都有效。现在,我尝试使用SqlDataReader执行此命令:

SELECT UPPER(Company) FROM MY_TABLE GROUP BY UPPER(Company) HAVING COUNT(*) > 0;
这是我的密码:

//open the sql connection
sqlConn.Open();

/*
    * This Sql command will get the field entries from all the selected fields and group them into selection groups.
    * 
    * This is important because it gives a list of arguments to group docId's with.
    */

string selectCommand = "SELECT UPPER(Company) FROM MY_TABLE GROUP BY UPPER(Company) HAVING COUNT(*) > 0;";

// Declare list for storing select groups. This will be returned
List <String> groupList = new List<string>();

// Set up table reader
SqlCommand sqlcmd = new SqlCommand(selectCommand, sqlConn);
dataRead = sqlcmd.ExecuteReader();

for (int i = 0; i < dataRead.FieldCount; i++)
{

    Console.WriteLine("DATAREAD: '" + dataRead.GetName(i) + "' .");
}

while (dataRead.Read())
{
    // select string for selecting groups
    string select = "";
    foreach (string colname in staple.fieldsToList())
    {
        // check for null
        if(dataRead[colname] == DBNull.Value)
        {
            select = select + "NULL,";
        }else{
            select = select + dataRead[colname].ToString()
        }

    }
    //store the select string in a list
    groupList.Add(select);
}

return groupList;
因此,我检查了dataRead中的名称,发现公司所在的索引中有一个空字符串。我将selectCommand字符串中的上限(Company)替换为Company,它工作正常,因此不知何故,使用UPPER()命令会使DataReader在没有正确名称的情况下初始化


有人知道修复方法吗?

尝试将名称重新输入:

SELECT UPPER(Company) AS Company ...

尝试将名称重新输入:

SELECT UPPER(Company) AS Company ...

尝试将名称重新输入:

SELECT UPPER(Company) AS Company ...

尝试将名称重新输入:

SELECT UPPER(Company) AS Company ...
将查询更改为:

SELECT UPPER(Company) As Company FROM MY_TABLE GROUP BY UPPER(Company) HAVING COUNT(*) > 0;
如果在不应用别名的情况下应用sql函数(如
UPPER
),则返回结果的
(无列名)

将查询更改为:

SELECT UPPER(Company) As Company FROM MY_TABLE GROUP BY UPPER(Company) HAVING COUNT(*) > 0;
如果在不应用别名的情况下应用sql函数(如
UPPER
),则返回结果的
(无列名)

将查询更改为:

SELECT UPPER(Company) As Company FROM MY_TABLE GROUP BY UPPER(Company) HAVING COUNT(*) > 0;
如果在不应用别名的情况下应用sql函数(如
UPPER
),则返回结果的
(无列名)

将查询更改为:

SELECT UPPER(Company) As Company FROM MY_TABLE GROUP BY UPPER(Company) HAVING COUNT(*) > 0;

如果在不应用别名的情况下应用sql函数(如
UPPER
),则返回结果的
(无列名)

很好!谢谢,很好用!谢谢,很好用!谢谢,很好用!非常感谢。