3

TrackID や TrackName などのトラック情報を保持する Sql テーブル Tracks があります。テキストボックスとリストボックスを備えたC#アプリケーションがあります。dataSet を使用して SQL テーブルを取得し、テキスト ボックスに "3" を書き込むと、TrackID が "3" のリスト ボックスのトラック名を取得したいと考えています。私のコードは次のとおりです。

lbxTracks.DataSource = new DataView(das.Tables[0], "TrackID LIKE " + idNo.ToString(), "TrackName", DataViewRowState.CurrentRows);

しかし、LIKE 関数は System.Int32. では使用できないため、エラーが発生します。

何か案は?

4

3 に答える 3

4

ToString()メソッドのようなものをExpression文字列に含める他の方法はわかりませんRowFilterが、この方法で機能します:

lbxTracks.DataSource = new DataView(das.Tables[0], "TrackID + '' LIKE '" + idNo + "'", "TrackName", DataViewRowState.CurrentRows);

を実行する前に、+ ''これが に変わることに注意してください。そして、それは魅力のように機能します。文字列の列で何かを実行する別の方法を誰かが知っている場合は、下にコメントを残してください。本当に感謝しています:)TrackIDstringLIKEToString()RowFilter

string.Format()文字列を連結するために使用する必要があり、 %inLIKE式の使用に注意してください。この場合、=(フォーマットではなく)値の等価性を比較したいだけであれば、正しい演算子(数値にはOK)を使用することをお勧めします。

于 2013-08-21T18:39:27.637 に答える
0

一重引用符と「%」を次のように使用します

lbxTracks.DataSource = new DataView(das.Tables[0], 
                       "TrackID LIKE '%" + idNo + "%'", 
                       "TrackName", DataViewRowState.CurrentRows);

それが役に立てば幸い..

参照

行フィルター

于 2013-08-21T17:45:37.260 に答える