【问题标题】:Insert the date into table将日期插入表格
【发布时间】:2012-01-01 19:26:14
【问题描述】:

我正在尝试使用日历控件在两个文本框中获取 From date 和 To date,然后尝试将此值插入表中。我该如何继续? 请帮忙..

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() + "')";

在使用此代码时,它会显示类似“字符串未被识别为有效日期时间”之类的错误

我该怎么办??

【问题讨论】:

    标签: asp.net string datetime insert calendar


    【解决方案1】:
    1. 使用Validation controls to validate that the values in textbox values are valid dates
    2. 您的代码直接从用户输入中连接字符串。这使您面临各种讨厌的攻击,主要是 SQL 注入。 Use parameterized queries instead

    【讨论】:

      【解决方案2】:

      始终使用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"];
        ..... 
      }
      

      【讨论】:

      • 您好 AVD,感谢您的回复。如何使用 command.Parametter.Add() 为 Session["strUid"].ToString() 添加参数?请帮忙
      【解决方案3】:

      你使用这样的参数化查询:

       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...

      【讨论】:

      • 这对他看到的错误没有帮助,但我 100% 同意他应该使用参数化查询。
      • 嗨 mtaboy,感谢您的帮助。我尝试了与您告诉我相同的方式。但是它显示了相同的错误,例如“”字符串未被识别为有效的日期时间“请帮助。
      • 嗨拉吉。您的表格中的日期列类型是什么?
      • 嗨,我创建了如下表:创建表 ATM_DETAILS_TB(PK_ATM_DETAILS_ATMID 数字身份(1234,1) 主键,PIN 数字,VALID_FROM 日期时间,VALID_TO 日期时间,FK_ATM_DETAILS_USER_ACC_ACCNO 数字参考 USER_ACC_TB(PK_USER_ACC_ACCNO),FK_ATM_DETAILS_STAFF_ID (20) 参考STAFF_TB(PK_STAFF_USERID))
      • 您确定您的日期输入文本是有效日期吗?我建议您在我的回答中添加一个链接
      猜你喜欢
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      相关资源
      最近更新 更多