如何从datetime列中选择不同的年份并将结果添加到C#中的comboBox?

Suv*_*e - 6 c# sql visual-studio-2010

我正在使用visual studio 2010和SQL Management Studio R2虽然sql查询在sql management studio中工作正常.它在视觉工作室中引发了一个例外.超出索引例外,当我编辑进行任何其他调整时,它会抛出格式异常.请帮我.代码如下:

 string sql = "SELECT DISTINCT Year(tdate) FROM saletransaction ORDER BY Year(tdate) DESC";
 cmd = new SqlCommand(sql, con);                
 dr = cmd.ExecuteReader();
 DateTime dt;
 while (dr.Read())
 {
     if (dr.HasRows == true)
     {
         dt = Convert.ToDateTime(dr["tdate"].ToString()); //tdate is the name of the column (getting an error at this line. )
         comboBox1.Items.Add(dt.Year.ToString());
     }
 }
Run Code Online (Sandbox Code Playgroud)

huy*_*itw 4

你不是在选择tdate,而是在选择Year(tdate)

我会将查询修改为:

string sql = "SELECT DISTINCT Year(tdate) AS tdate_year FROM saletransaction ORDER BY Year(tdate) DESC";
Run Code Online (Sandbox Code Playgroud)

并通过以下方式访问它dr["tdate_year"]