2017-02-22 9 views
-1

データベースの行をどのように反復するか、彼は私にいくつかのコード例を教えましたが、 Cannot apply indexing with [] to an expression of type 'object'。これは何を意味するのでしょうか?[]を使用してデータベースの行を繰り返し処理する方法 'typ'の式にC#mysql

foreach (var row in employee.tbl.Rows) 
         { 
          if (row["fStatus"].ToString().Equals("Borrowed")) 
          { 
           txtTITLE_R.Text = row["fBookTitle"].ToString(); 
           txtIDNO.Text = row["fIDStudent"].ToString(); 
           txtLEVEL.Text = row["fLevel"].ToString(); 
          } 
          else 
          { 
           MessageBox.Show("Thank you."); 
          } 
         } 
+0

どのようなデータ型(S) 'row'と' employee.tbl.Rows'のですか?キャストする必要があるかもしれません。 –

+0

私の 'row'にはデータ型もありません。私の' employee.tbl.Rows' – user3415509

+1

'row'は確かにデータ型を持っています。あなたはそれが何であるかを知る必要があります。 'employee.tbl.Rows'がどこから来たのか教えてくれたら、助けてくれるかもしれません。 –

答えて

0

エラーはあなたを教えしようとしているとして、rowは何のインデックス演算子を持たない、object宣言されています。

varを実際の行のタイプに変更します。

+0

の元のコードは 'cfuckcall.tbl.Rows [0]のように' [0] 'へのインデックスを設定した実際の行の型です] ["fStatus"] .ToString()。Equals( "Borrowed") 'このコードはテーブルの全行を読み込まないので、' foreach'を使用しています。 – user3415509

+0

@ user3415509:問題は ' 'は' IEnumerable 'を実装していないので、' var'はどの型を使うべきかを知ることができません。 – SLaks

1

私は、tblDataTableであると推測しています。もしそうなら、あなたはこのように、型固有のメンバーにアクセスするDataRowを使用する必要があります。

foreach (DataRow row in employee.tbl.Rows) 
{ 
    //etc.... 
} 
+0

はい、それは 'DataTable'です – user3415509

関連する問題