2017-07-27 8 views
0

にデータテーブル値を割り当てることができませんやあみんな、このことにより、エクセルを経由して輸入されて、本当に単純なデータテーブルを、持っているAデフォルトはF1とF2です。つまり、2番目の列の値を変数に代入することはできませんでした。しかし、最初の値からの値を適切に割り当てることができます。が文字列

string firstColumn = dt.Rows[1]["F1"] as string; 
string secondColumn = dt.Rows[1]["F2"] as string; 

私は、データテーブルにあるもの、あなたが見ることができる画面を、添付。 firstColumnには "ABC"が格納されていますが、これは問題ありませんが、secondColumnの値はnullです。それは簡単なはずですが、何かが間違っていて、何が分からないのです。手伝って頂けますか?

Attached image

+0

'dt.Rows [1] [** F2"] 'の**正確な**値は何ですか? 'dt.Rows [1] [" F2 "]。GetType()。FullName'は何を返しますか? –

+0

おそらく '' ''として ''文字列 '' '' – user230910

+0

それは問題があるので、ダブルを返します。ありがとうMarc。私はちょうどそれがExcelによってインポートされ、dtが自動的に作成されると、すべてのセルが同じタイプの文字列になると考えました。 – btsm

答えて

0

明示的に以下のようなInt32代わりの文字列にキャスト:

int secondColumn = Convert.ToInt32(dt.Rows[1]["F2"]); 

あなたのスクリーンショットは、整数値として、それを示しています。したがって、整数にキャストするとうまくいくはずです。

+0

そうです、それです。ありがとうございました。 – btsm

1
dt.Rows[1]["F1"] 

これは矛盾しているようです。

    dt.Rows[1]
  • 文書
  • "F1"行は、文書の最初の行に見出すことができる検索します。
しかし

あなたが最初の逢引が動作することを主張します。 Excelは0ベースのインデックスを使用していませんが、あなたが話していることを知っていると仮定します。

これは、他の割り当てが意味をなさないことを意味します。

dt.Rows[1]["F2"] 

あなたはdt.Rows[1]["F1"]が検索されたと主張するならば、私はフィールドF2dt.Rows[2]、ないdt.Rows[1]で発見することが期待されます。


かかわらず、問題は、コードの1行目または2行目で発生したかどうかの、私はあなたが簡単に取得しようとしているフィールドでは、アドレス指定をしている特定の行に存在しないと思います。