如何在数据表中使用for循环添加年份列表?

How to add Year list using for loop in datatable?

我有以下代码,但出现错误-输入数组比此 table 中的列数长。

    DataTable dtYear = new DataTable();
    int Year1 = Convert.ToInt32(DateTime.Now.ToString("yyyy")); 
    for (i = 1980; i <= Year1; i++)   
    {
       dtYear.Rows.Add(i); 
    } 
     ddlYear.DataSource = dtYear; 
     ddlYear.DataBind();

您的 DataTable 不包含任何列 - 因此您无法添加包含列值的行。

编辑:

像这样更改您的代码:

DataTable dtYear = new DataTable();

dtYear.Columns.Add("Year", typeof(int));   // add this line

int Year1 = Convert.ToInt32(DateTime.Now.ToString("yyyy")); 
for (i = 1980; i <=> Year1; i++)   
{
   dtYear.Rows.Add(i); 
} 
 ddlYear.DataSource = dtYear; 
 ddlYear.DataBind();

首先将 "Year" 列添加到 DataTable。

dtTable.Columns.Add("Year", typeof(int));

您可以使用 Year 属性 的 DateTime

int Year1 = DateTime.Now.Year;

并且您还应该在 for 条件中使用有效的比较运算符。 <=> 在 c# 中无效。

for (i = 1980; i <= Year1; i++)   
{

} 

我认为您的代码甚至都无法编译,所以它是如何抛出错误的。

在为行赋值之前使用数据列。

此处对您的代码进行了一些修改。

            DataTable dtYear = new DataTable(); 
            int Year1 = Convert.ToInt32(DateTime.Now.ToString("yyyy"));
            //add columns to DataTable
            dtYear.Columns.Add("Years",typeof(int), null);

            for (int i = 1980; i <= Year1; i++) 
            {
                dtYear.Rows.Add(i);
            } 


           ddlYear.DataSource = dtYear;
           ddlYear.DataTextField = "Years";
           ddlYear.DataBind();

希望这会有所帮助。

您必须先将列添加到数据表中:

 DataTable dtYear = new DataTable();
 dtYear.Columns.Add("year",typeof(int)); // add the column
 int Year1 = Convert.ToInt32(DateTime.Now.ToString("yyyy"));
 for (int i = 1980; i <= Year1; i++)
 {
     dtYear.Rows.Add(i);
 }
 ddlYear.DataSource = dtYear;
 ddlYear.DataBind();