Вставьте дату в таблицу - PullRequest
       16

Вставьте дату в таблицу

0 голосов
/ 19 ноября 2011

Я пытаюсь получить дату и дату в двух текстовых полях, используя элемент управления календарем, а затем пытаюсь вставить это значение в таблицу.Как я могу продолжить это ??Пожалуйста, помогите ..

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 ]

2 голосов
/ 19 ноября 2011
  1. Используйте Элементы управления проверкой, чтобы проверить, что значения в значениях текстового поля являются действительными датами .
  2. Ваш код используется для связывания строк непосредственно из пользовательского ввода. Это открывает для вас все виды неприятных атак, основным из которых является SQL-инъекция. Вместо этого используйте параметризованные запросы .
1 голос
/ 19 ноября 2011

Всегда используйте DateTime.TryParse или TryParseExact метод для анализа даты.

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"];
  ..... 
}
0 голосов
/ 19 ноября 2011

Вы используете из параметризованных запросов, таких как:

 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

Редактировать ----проверить этот вопрос Строка не была получена ...

...