无法解释令牌'。'在第6位

时间:2012-04-19 10:05:33

标签: c# asp.net textbox datatable

我有一个文本框和一个日历扩展器,这里是Default.aspx页面中的代码:

 <asp:TextBox ID="tbdate" runat="server"></asp:TextBox>

 <asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="tbdate" 
      Format="dd.MM.yyyy">
 </asp:CalendarExtender>

现在在Default.aspx.cs页面中,我尝试从DataTable的新列中插入TextBox中的值

 dt.Columns.Add("date", typeof(string), tbdate.Text);

我有这个错误

无法解释令牌'。'在第6位。

2 个答案:

答案 0 :(得分:1)

您需要先添加列:

dt.Columns.Add(new DataColumn("date", typeof(DateTime));

然后做一个循环并添加所需的日期:

foreach(DataRow row in dt.Rows)
{
 row["date"] = DateTime.Parse(tbdate.Text);
}

答案 1 :(得分:0)

我假设您不希望将此日期值添加为DataColumn,而是添加为DataRow

DataTable dt = new DataTable();
dt.Columns.Add("date", typeof(DateTime));
dt.Rows.Add(DateTime.Parse(tbdate.Text));

顺便说一下,您使用的DataColumnCollection.Add的重载是Expression

如果要将此值添加到所有行:

var selectedDate = DateTime.Parse(tbdate.Text));
dt.Columns.Add("date", typeof(DateTime));
foreach(DataRow row in dt.Rows)
{
    row["date"] = selectedDate;
}