0
DataRow drEmpty = dsResult.Tables[1].NewRow();

dsResult.Tables[1].Rows.InsertAt(drEmpty, 0);

DataRow drBranch = dsResult.Tables[1].Rows[1];

drBranch[1] = "Branch"; <--error

dsResult.Tables[1].Rows.InsertAt(drBranch, 1);

この数行のコードの期待される出力は、最初の空の行データをドロップダウンリストボックスに追加し、2 行目に「ブランチ」を追加することですが、そうしませんでした

エラー メッセージが表示されました -- 入力文字列が正しい形式ではありませんでした。ows_ID 列に格納できませんでした。予想される型は Int64 です。

その後、私はに変更しようとします

drBranch[1] = int64.Parse("Branch");

そして、私は別のエラーが発生します

2 番目のエラー メッセージ -- 入力文字列が正しい形式ではありませんでした。

私はすでに欲しい答えを手に入れました、私は7時間後に答えを投稿します、ありがとう

4

4 に答える 4

0

あなたの例では、 type の値のみを受け入れる列をdrBranch[1]表しています。つまり、小数点のない数値のみが許可されます。ows_IDinteger

"55"を使用して数値などを含む文字列を整数Int64.Parse("55")に変換できますが、文字列などを整数に変換することはできません"Branch"。列に文字列を格納しようとしていows_IDます。間違ったインデックスにアクセスしようとしている可能性がありますか?

于 2012-11-12T07:51:36.813 に答える
0

問題は、それ"Branch"が整数ではないことです。

"526"値を整数にキャストするには、 ,のような文字列として整数値が必要です"100"

于 2012-11-12T07:58:32.120 に答える
0

列の序数は 1 から始まりますが、0 から始まるため、2 番目の列だと思いdrBranch[1]ます。

私の意見では、代わりに列の名前を使用することをお勧めします。

drBranch.SetField<String>("Branch", newBranch);

(強く型付けされ、nullablesをサポートしているため、拡張メソッドSetFieldを使用しています)

于 2012-11-12T07:58:39.210 に答える