Визуальная студия Visual Studio 2008 для выбора даты и времени оракула - PullRequest
1 голос
/ 14 декабря 2009

я пытаюсь вставить данные в мою базу данных оракула, но я получаю сообщение об ошибке «Недопустимый месяц» как похоже, я не могу преобразовать значение datetimepicker в моей форме в oracle date или timestamp (7), пожалуйста, помогите!

мой код

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = " dd MM yyyy  ";
string m = "insert into member(memberid,name,street,roadno,houseno,phoneno,joindate,sex) values(member_deptno.nextval,'" + a + "','" + b+ "','" + c + "','" + d + "','" + h + "','" + dateTimePicker1.Value.Date+ "','"+de+"')";

Ответы [ 2 ]

2 голосов
/ 14 декабря 2009

параметризованный пользователем sql insert.

например. запрос на выборку с параметрами

SqlConnection objConnection = new SqlConnection(connectionString);
objConnection.Open();
SqlCommand objCommand = new SqlCommand(
   "SELECT * FROM User WHERE Name = @Name AND Password = @Password",
   objConnection);
objCommand.Parameters.Add("@Name", tbName.Text);
objCommand.Parameters.Add("@Password", tbPassword.Text);
SqlDataReader objReader = objCommand.ExecuteReader();
1 голос
/ 14 декабря 2009

Как уже упоминали другие параметры, это путь, но я не думаю, что они решат вашу проблему.

Я полагаю, что CustomFormat, показанный в вашем фрагменте, является форматом, который хочет Oracle. Проблема в том, что когда вы вызываете dateTimePicker1.Value.Date, он дает вам объект DateTime, и, поскольку вы объединяете его со строкой, он выполняет метод .ToString (), который приводит к другому формату. Вы должны поместить вашу строку формата в .ToString () для управления выводом. Пример:

dateTimePicker1.Value.Date.ToString("dd MM yyyy");
...