如何在数据表中使用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();
我有以下代码,但出现错误-输入数组比此 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();