可能性の重複:
DateTime.TryParse century control C#はMM/DD/YY形式から有効な日付を作成
私は.dbfファイルからデータをインポートしていますC#のアプリを持って、そしてそれを挿入SQL Serverに追加します。ファイルには恐ろしいMM/dd/yy
形式のDOB列があります。私はちょうどConvert.ToDateTimeを使用して、私が期待したようにほとんどのデータを1900年代に変換します。正しく変換されず、今から30年後に生まれた人がいます。どのようにして変換を強制的にMM/dd/19XX
と書くだけですか?
たとえば、.DBFファイルのこの日付は、12/29/29
は12/29/2029
に変換されます。
私はそうのような.dbfファイルを読んでいる:あなたはretrived日付の正確な形式を知っているなら、あなたはParseExactを(使用することができます
var fileInfo = new System.IO.FileInfo(dbfPath);
string dsPath = fileInfo.DirectoryName.ToString();
DataSet DSResult = new DataSet();
using (OleDbConnection cn = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source=" + dsPath + ";" + //Set the Data Sourde = to the directory of the file.
@"Extended Properties=dBASE III;"))
using (OleDbCommand cm = cn.CreateCommand())
{
cn.Open();
cm.CommandText = "SELECT * FROM UPDATED"; //Specify the file name for the select statement.
using (OleDbDataAdapter dba = new OleDbDataAdapter(cm))
{
dba.Fill(DSResult);
}
}
return DSResult;
正しく変換されていないレコードの例を投稿できますか? –
どうやってdbfを読んでいるのですか? Cos ADOはそれをDataSetに読み取ることができるはずです – Jester
おそらく、データウィンドウ(1950年より前の年は2050年として扱われます)が見えています。 –