2011-01-10 4 views
0

データベースの列からリッチテキストボックスにデータを表示しようとしていますが、DataSetとDataReaderの間に混乱が生じています。エラーが含まれている2行が表示され、理由がわかりません:ADO.NET - DataRead Error

// Create a connection string 
      string ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= C:\\Documents and Settings\\Harley\\Desktop\\Test.accdb"); 
      string SQL = "SELECT * FROM Paragraph"; 

      // create a connection object 
      SqlConnection conn = new SqlConnection(ConnectionString); 

      // Create a command object 
      SqlCommand cmd = new SqlCommand(SQL, conn); 
      conn.Open(); 

      DataTable dt = new DataTable(); 
      da.Fill(dt); //ERROR 

      // Call ExecuteReader to return a DataReader 
      SqlDataReader reader = cmd.ExecuteReader(); 

      foreach(DataRow reader in dsRtn) //ERROR 
      { 
       richTextBox = richTextBox.Text + reader[0].ToString(); 
      } 

      //Release resources 
      reader.Close(); 
      conn.Close(); 

     } 
+0

エラーメッセージは何ですか? –

答えて

2

各スニペットに問題があります。データアダプタの実装については

あなたはこれを提供:

 SqlCommand cmd = new SqlCommand(SQL, conn); 
     conn.Open(); 

     DataTable dt = new DataTable(); 
     da.Fill(dt); //ERROR 

それはあなたのDataTableを埋めるためにどのようにないアイデアを持っていないので、あなたはあなたのDataAdapterを使ってSqlCommandオブジェクトを関連付けるされていません。あなたのデータリーダーの実装については

、あなたは間違ってこれを試してDataReaderを使用している

 // Call ExecuteReader to return a DataReader 
     SqlDataReader reader = cmd.ExecuteReader(); 

     foreach(DataRow reader in dsRtn) //ERROR 
     { 
      richTextBox = richTextBox.Text + reader[0].ToString(); 
     } 

 // Call ExecuteReader to return a DataReader 
     SqlDataReader reader = cmd.ExecuteReader(); 

     while(reader.Read()) 
     { 
      richTextBox = richTextBox.Text + reader[0].ToString(); 
     }