2
我有一個csv文件,我需要添加一列(as-date-date)並使用c#將它們保存到oracle表中。我所做的是將數據添加到Datatable,並使用OracleBulkCopy將所有數據插入到數據庫表中。將c#datetime插入到oracle表中時發生日期格式問題
現在的問題是,當我檢查我在蟾蜍的oracle表時,第一列顯示我10/08/1320,顯然oracle不能存儲比1900更早的日期。當我從蟾蜍的字段中提取時,它告訴我說「指定的日期超出範圍的支持日期......」。
下面是我嘗試過的其他三種解決方案,都有同樣的問題。
using Oracle.DataAcccess.Client;
//Solution 1
DataTable dt = new DataTable();
dt.Columns.Add("Product_Date",typeof(DateTime));//The first column of my oracle table is Date
dt.Columns.Add(....);
...
//loop my csv file
DataRow dr = dt.NewRow();
dr[0] = new DateTime(2013,10,8);
dr[1] = ...;
...
dt.Rows.Add(dr)
OracleBulkCopy bc = new OracleBulkCopy(myConn);
bc.DestinationTableName = "TableName";
bc.WriteToServer(dt);
//Solution 2
DataTable dt = new DataTable();
dt.Columns.Add("Product_Date",typeof(OracleDate));//The first column of my oracle table is Date
dt.Columns.Add(....);
...
//loop my csv file
DataRow dr = dt.NewRow();
DateTime dtime = DateTime(2013,10,8);
dr[0] = new OracleDate(dtime);
dr[1] = ...;
...
dt.Rows.Add(dr)
OracleBulkCopy bc = new OracleBulkCopy(myConn);
bc.DestinationTableName = "TableName";
bc.WriteToServer(dt);
//Solution 3
DataTable dt = new DataTable();
dt.Columns.Add("Product_Date",typeof(string));//The first column of my oracle table is Date
dt.Columns.Add(....);
...
//loop my csv file
DataRow dr = dt.NewRow();
DateTime dtime = DateTime(2013,10,8);
dr[0] = dtime.ToString("ddMMMyy");
dr[1] = ...;
...
dt.Rows.Add(dr)
OracleBulkCopy bc = new OracleBulkCopy(myConn);
bc.DestinationTableName = "TableName";
bc.WriteToServer(dt);