0

次のコードでは、条件演算子を使用して null 値を探し、null が見つかった場合は別の値を割り当てています。私の問題は、何らかの理由で null 値を正しく検出していないことです。

sliderQuestion11.Value = Convert.ToDouble(cs.q11 != null ? cs.q11 : "10");

cs は SQLite クエリによって生成されるクラスで、q11 は文字列です。

「値を null にすることはできません」というエラーが表示されます。ありがとう。

編集

みんな助けてくれてありがとう。これらの答えはすべてうまくいったはずですが、私がしなければならなかったのは、単に戻るのではなく

query.FirstOrDefault()

私は次のことをしなければなりませんでした

CustomerSurvey cs = new CustomerSurvey();
cs.q1 = query.FirstOrDefault().q1 ?? "-10";
cs.q2 = query.FirstOrDefault().q2 ?? "-10";
cs.q3 = query.FirstOrDefault().q3 ?? "-10";                        
cs.srID = query.FirstOrDefault().srID;

これで動作します

sliderQuestion11.Value = Convert.ToDouble(cs.q11 != "-10" ? cs.q11 : "10");

(なぜそれを 10 に設定するだけでなく、コードの他の場所でヌル値を検出する必要があるのか​​ を言うつもりです。それが私が -10 を使用している理由です)

4

5 に答える 5

3

たぶんあなたが必要です:

!string.IsNullOrEmpty(cs.q11) ? cs.qll : "10";

を使用する理由string.IsNullOrEmptyは、文字列が単に空である可能性があるためですnull

完全なスニペット:

sliderQuestion11.Value = Convert.ToDouble(!string.IsNullOrEmpty(cs.q11) ? cs.qll : "10");
于 2013-06-14T13:10:49.753 に答える
1

次のコードを試すこともできます。

sliderQuestion11.Value = Convert.ToDouble(cs.q11 ?? "10");
于 2013-06-14T13:11:17.820 に答える
0

さらに別の答え: :)

sliderQuestion11.Value = string.IsNullOrWhitespace(cs.q11) ? 10.0 : Convert.ToDouble(cs.q11);
于 2013-06-14T13:17:49.540 に答える
0

おそらくそうあるべきです

sliderQuestion11.Value = (cs != null && (!string.IsNullOrWhitespace(cs.q11)) ? Convert.ToDouble(cs.q11) : 10);
于 2013-06-14T13:11:16.607 に答える
0
sliderQuestion11.Value = Convert.ToDouble(!string.IsNullOrWhiteSpace(cs.q11) ? cs.q11 : "10");

これにより、null および空のチェックに加えて、文字列に 1 つ以上の空白が含まれていないこともチェックされます。

于 2013-06-14T13:11:18.697 に答える