1

空白を "" に置き換える方法がわかりません。このコードで DbNull エラーが発生しているため:

var subFields = permCollection
    .Where(item=>fields.Contains(item.FBFieldName))
    .Select(a=>a.FBSubFieldName)
    .ToList();

FBSubFieldName の値には、空白のものとそうでないものがあります。何か案は?

4

3 に答える 3

4

これは厳密に型指定されDataTableているため、null 許容で null のプロパティにアクセスすると、(デフォルトで) 例外がスローされます。

boolnull かどうかを示す自動生成されたプロパティがあり、それを条件付き operator(?) で使用します

var subFields = permCollection
    .Where(item  => fields.Contains(item.FBFieldName))
    .Select(item => item.IsFBSubFieldNameNull ? "" : item.FBSubFieldName)
    .ToList();
于 2013-10-22T21:47:39.657 に答える
1

次のようなものかもしれません:

var subFields = permCollection
    .Where(item=>item.FBSubFieldName!=null && fields.Contains(item.FBFieldName) )
    .Select(a=>a.FBSubFieldName)
    .ToList();

ここで、提供されたコードによると、 でFBSubFieldNameクエリされたのと同じ「データ」のフィールドであると推測しますSelect

これがあなたが求めているものでない場合は、明確にしてください。

于 2013-10-22T21:46:12.077 に答える
0

フィールドで DBNull をテストする必要があります。手始めに試してみてください

var subFields = permCollection
.Where(item=>!(item.FBSubFieldName is System.DBNull) && fields.Contains(item.FBFieldName) )
.Select(a=>a.FBSubFieldName)
.ToList();
于 2013-10-22T21:49:15.453 に答える