将日期插入表格

时间:2011-11-19 06:54:04

标签: asp.net string datetime insert calendar

我试图使用日历控件从两个文本框中获取日期和日期,然后尝试将此值插入表中。我怎么能继续这个? 请帮忙..

string comstr = "insert into ATM_DETAILS_TB values(" + txtpin.Text + ",'" + Convert.ToDateTime(txtvldfrm.Text) + "','" + Convert.ToDateTime(txtvldto.Text) + "'," + Convert.ToInt32(ddlaccno.SelectedValue) + ",'" + Session["strUid"].ToString() + "')";

使用此代码时,它显示错误,如“字符串未被识别为有效的DateTime”

我该怎么办?

3 个答案:

答案 0 :(得分:2)

  1. 使用Validation controls to validate that the values in textbox values are valid dates
  2. 您的代码我们直接从用户输入中提供字符串。这可以让你了解各种令人讨厌的攻击,主要是SQL注入。 Use parameterized queries instead

答案 1 :(得分:1)

始终使用DateTime.TryParseTryParseExact方法来解析日期。

DateTime vldDate;
bool isValid=false;
if(DateTime.TryParse(txtvldfrm.Text,out vldDate))
 {
    isValid=true;
 }
....
if(isValid)
{
  command.Parametter.Add("@vldto",SqlDbType.DateTime).Value=vldDate;
  command.Parametter.Add("@strUid",SqlDbType.VarChar,30).Value=Session["strUid"];
  ..... 
}

答案 2 :(得分:0)

您可以使用参数化查询,如下所示:

 string comstr = "insert into ATM_DETAILS_TB values(@pin,@vldfrm,@vldto,@ddlaccno,@strUid)";

    YourCommand.Parametter.AddWithValue("@vldto",Convert.ToDateTime(txtvldto.Text));
    YourCommand.Parametter.AddWithValue("@strUid",Session["strUid"].ToString());
    ....Define the Other Paraametter

编辑----
检查此问题String was not rec...