1

我试图将数据插入到我的 oracle 数据库中,但我收到“无效月份”错误,因为我似乎无法将表单的 datetimepicker 值转换为 oracle 日期或时间戳(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+"')";
4

2 回答 2

2

用户参数化的 sql 插入。

例如参数化选择查询

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();
于 2009-12-14T15:32:31.583 回答
1

正如其他人提到的那样,参数是要走的路,但我认为它们不会解决您的问题。

我假设您的代码段中显示的 CustomFormat 是 Oracle 想要的格式。问题是,当您调用dateTimePicker1.Value.Date它时,它会为您提供一个 DateTime 对象,并且由于您将它与字符串组合,它会执行 .ToString() 方法,从而产生不同的格式。您应该将格式字符串放在 .ToString() 中以控制输出。例子:

dateTimePicker1.Value.Date.ToString("dd MM yyyy");
于 2009-12-14T17:17:47.543 回答