有一个表==创建表newstudent(注册int,名称varchar2(20),DoJoin日期); 在c#中我输入
oraclecommand(1,'amit purohit', DateTime.Now());
//Error found 'nvalid month'
oraclecommand(1,'amit purohit', String.Format("{0:dd-MMM-yyyy}"));
//problme that save only date into database but i need time also. like '11-AUG-2009 11:22:32.0'
oraclecommand(1,'amit purohit', String.Format("{0:dd-MMM-yyyy hh:mm:ss}")
//also error get like string picture format in date time values
答案 0 :(得分:3)
您的一个问题可能是Oracle的日期格式错误。
Oracle接受 yyyy / mm / dd 日期格式,我可以看到你没有使用它。
我和Jon Skeet就这个问题进行了讨论,但你可能想尝试在字符串中创建一个普通的SQL查询,然后运行查询。
您可以使用to_date函数将日期转换为正确的格式。
insert into table_name
(date_field)
values
(to_date('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss'));
(通过Standard Date and Time Format Strings)
或者另一方面,您可以尝试使用一些C#函数将日期转换为正确的Oracle接受格式:Oracle/PLSQL: Insert a date/time value into an Oracle table
由于
答案 1 :(得分:1)
您应该使用参数化语句,并在其中添加包含相关数据的参数,并指定相应的参数类型。确切的格式取决于您使用的是哪种Oracle驱动程序,但它可能类似于:
command.Parameters.Add(":date", OracleDbType.DateTime).Value = ...;
答案 2 :(得分:1)
尝试这样的事情(未经测试的代码):
public void InsertDateTime(DateTime aoDateTime) {
using (var oracleConnection = new OracleConnection("<my connection string>"))
{
var oracleCommand = new OracleCommand(
"INSERT INTO MY_TABLE (MY_DATE_FIELD) VALUES (:pMY_DATE_VALUE)",
oracleConnection);
oracleCommand.Parameters.Add(
new OracleParameter(":pMY_DATE_VALUE", aoDateTime));
oracleConnection.Open();
oracleCommand.ExecuteNonQuery();
}
}
答案 3 :(得分:0)