C# 为什么“按顺序”打破了我的疑问?

C# 为什么“按顺序”打破了我的疑问?,c#,sql,sql-server,visual-studio-2010,C#,Sql,Sql Server,Visual Studio 2010,我正在使用下面的代码从数据库中获取公司列表,并将它们加载到列表视图中。它工作得很好 conn.Open(); string pricesqry = "SELECT company, url FROM companies"; SqlCommand pricescmd = new SqlCommand(pricesqry, conn); SqlDataReader pricesreader = pricescmd.ExecuteReader(); while (pricesreader.Read(

我正在使用下面的代码从数据库中获取公司列表,并将它们加载到列表视图中。它工作得很好

conn.Open();
string pricesqry = "SELECT company, url FROM companies";
SqlCommand pricescmd = new SqlCommand(pricesqry, conn);
SqlDataReader pricesreader = pricescmd.ExecuteReader();

while (pricesreader.Read())
{
    ListViewItem company = new ListViewItem(pricesreader["company"].ToString());
    company.SubItems.Add(pricesreader["url"].ToString());
    company.SubItems.Add("Blank for now..");

    pricesList.Items.Add(company);
}
conn.Close();
但是,如果我想按公司名称按字母顺序排列列表,请将select查询更改为:

string pricesqry = "SELECT company, url FROM companies ORDER BY company";
没有数据加载到listview中。删除“按顺序”部分,数据将再次显示。我做错了什么?

如果数据库中可能有空值,最好像这样从读卡器中获取值:

假设公司和url是一个字符串

ListViewItem company = new ListViewItem(Convert.IsDBNull(pricesreader.GetOrdinal("company")) ? null : pricesreader.GetString(pricesreader.GetOrdinal("company")));

company.SubItems.Add(Convert.IsDBNull(pricesreader.GetOrdinal("url")) ? null : pricesreader.GetString(pricesreader.GetOrdinal("url")));
希望这对您有所帮助。

如果您的数据库中可能有空值,最好像这样从读取器获取值:

假设公司和url是一个字符串

ListViewItem company = new ListViewItem(Convert.IsDBNull(pricesreader.GetOrdinal("company")) ? null : pricesreader.GetString(pricesreader.GetOrdinal("company")));

company.SubItems.Add(Convert.IsDBNull(pricesreader.GetOrdinal("url")) ? null : pricesreader.GetString(pricesreader.GetOrdinal("url")));

希望这能有所帮助。

Minitech功不可没


我的“公司”列类型设置为文本。已更改为varchar,它现在的工作状态与我预期的一样。

归功于Minitech


我的“公司”列类型设置为文本。已更改为varchar,它现在可以按照我的预期工作。

如果在Sql Management Studio中执行该查询,会得到结果吗?列company上是否有空值?公司的类型是什么?是否尝试…了解相关代码?您的查询是否可能在ORDER BY存在的情况下超时,并且您正在尝试捕获错误?是的,不能在ORDER BY子句中使用ntext、text、image、geography、geometry和xml类型的列。;-请参阅,限制和约束如果您在Sql Management Studio中执行该查询,您会得到结果吗?列company上是否有空值?公司的类型是什么?您是否尝试…了解相关代码?您的查询是否可能在ORDER BY存在的情况下超时,并且您正在尝试捕获错误?是的,不能在ORDER BY子句中使用ntext、text、image、geography、geometry和xml类型的列。;-请参阅,限制和限制