c#
2016-08-10 16 views 2 likes 
2

というプロパティをDataViewの次のstring変数に使用する方法はありますか?文字列型の関数の引数にC#DataView.RowFilterプロパティを使用します

public DataTable FilterByLatestDate(DataTable tbl, string date_asof) 
    { 
     DataView latest = tbl.DefaultView; 
     //latest.RowFilter = "[date]= '" + date_asof + "'" ; // 
     //latest.RowFilter = string.Format("[date]= '{0}'", date_asof); // alternative to messing around with quotes 

DataTable last_tbl = latest.ToTable(); 

return last_tbl; 
} 

シモンズ:私は関与の提案でのみ興味を持っています.Rowfilter

+0

でそれをフォーマットするか、C#6.0の構文を使用して、ちょうど' $を書くことをお勧めします。 – Adwaenyth

+0

はまだ '#4.0'ですが、情報に感謝します。 –

答えて

0

使用するcharacted引用はRowFilterの日付を使用して#記号

にあるベスト
latest.RowFilter = "[date]= #" + date_asof + "#" ; 

ただし、RowFilterプロパティは文字列を受け入れ、t日付をフィルタに使用する場合、変数は "MM/dd/yyyy"の形式で表現する必要があります。 文字列date_asofがこの形式でない場合、このコードは正しく機能しませんでした。

私は ` "[日付] =#{date_asof}#" あなたはあなたの関数へのDateTimeを渡すと

public DataTable FilterByLatestDate(DataTable tbl, DateTime date_asof) 
{ 
    DataView latest = tbl.DefaultView; 
    latest.RowFilter = "[date]= #" + date_asof.ToString("MM/dd/yyyy") + "#"; 
    return latest.ToTable(); 
} 
+0

チップを使用してくれてありがとうございます。 'date_asof'はデフォルトで' M/dd/yyyy'でフォーマットされています。しかし、私はまだ#でSyntaxErrorExceptionが発生します。 –

+0

このコードをデバッグできますか?はいの場合は、RowFilter行にブレークポイントを置き、RowFilterプロパティに渡される正確なテキストを確認します。私はちょうど上記のいずれかと同様のコードをテストしました。構文エラー – Steve

+0

Ex-ante( "")は自然です。事後: '式に無効な日付定数 '##'が含まれています –

関連する問題