2016-08-15 7 views
-2

まず、私と同様の質問がいくつかありますが、どれも私には役に立たないことがわかります。ラムダ式の「入力文字列が正しい形式ではありません」エラー

2つの異なるSQLテーブルにある2つの日付を比較したいと思います。ラムダ式を使用しています。

マイコード:

var itemStartDate = new ItemsBusiness().GetList<Item>(i => Convert.ToInt64(i.StartDate.Replace("/", "")) < Convert.ToInt64(tdpStartDate.Text.Replace("/", ""))); 

私はプログラムを実行するときただし、この例外が現れます:

入力文字列が正しい形式ではありませんでした。文字列をDateTimeに変換するときは、各変数をDateTimeオブジェクトに入れる前に文字列を解析して日付を取得します。

例外をキャッチラインは別の形である:

try 
{ 
    int inputVal = Convert.ToInt32(value.Trim().Replace("px", "")); 
    myLabelWidth = inputVal.ToString(); 
} 

PS:「2010年6月20日」

+0

は、あなたがこののではなく、日付として解析しようとすることはできません前のような例外をスローしません

var StartDate = DateTime.Now.Date.ToString("ddMMyyyy"); var tdpStartDate = DateTime.Now.Date.ToString("ddMMyyyy"); var result = Convert.ToInt64(StartDate) < Convert.ToInt64(tdpStartDate); 

:あなたは何ができるか

は数字しか含まないようにDateをフォーマットするだけです方法? –

+0

あなたはこの行でエラーが発生していると確信していますか?オブジェクトItem内でこのエラーが発生する可能性が高いです。 – helgeheldre

+0

@helgeheldreいいえ、それは別の行です。しかし、この行はそれを引き起こします。 – iminiki

答えて

1

これは私が考えるものです:私の日付形式は、このようなものですハプニング。私はあなたがこのようなstringにあなたのdateを回すことを前提としています

var StartDate = DateTime.Now.Date.ToString(); 
var tdpStartDate = DateTime.Now.Date.ToString(); 
var result = Convert.ToInt64(StartDate.Replace("/", "")) < Convert.ToInt64(tdpStartDate.Replace("/", "")); 

月を表すときDateが文字でフォーマットであるため、これはあなたが得たエラーで失敗します。これは

+0

私は現在の日付を使用していない、それは2つの異なるテーブルの2つの異なる日付です。 – iminiki

関連する問題