0

こんにちは、データ ソースへの接続を確立し、情報を抽出してグリッド ビューに表示しようとしています。問題は、ADA の値が常に null になることです。クエリの入力を間違えた可能性がありますか、それともアダプターに問題がありますか?

さらに、複数のファイルを処理する必要があるため、myInt 変数を使用してさまざまなデータ ソースを挿入しています。これも問題になる可能性があります。

try
            {
                //establish connectioin
                OleDbConnection conn = new OleDbConnection(("provider=Microsoft.Jet.OLEDB.4.0; " + ("data source=" + myInt + ";" + "Extended Properties=Excel 8.0;")));

               OleDbDataAdapter ada = new OleDbDataAdapter("SELECT * FROM MarkingSheet$]", conn);

                DataSet ds = new DataSet();

               ada.Fill(ds);
               dataGridView1.DataSource = ds.Tables[0].DefaultView;

               conn.Close();
            }

ANSWERそれが私にとってうまくいったことです

OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + myPath + ";Excel 12.0;HDR=YES;"); ;
              conn.Open();
              OleDbDataAdapter ada = new OleDbDataAdapter("select * from [Marking Sheet$]", conn); ;
               DataSet ds = new DataSet();
               ada.Fill(ds);
4

2 に答える 2

0

SQLを次のように変更します

"SELECT * FROM [MarkingSheet$]"

開き括弧がないためです。

于 2012-12-12T18:36:08.063 に答える
0

コードの障害は、アダプターを入力しようとしたときに接続を開いていないことです。SQLステートメントも間違っています。次のように、DataTable を DataGridView にバインドすることもできます。

 try
     {

         OleDbConnection conn = new OleDbConnection(("provider=Microsoft.Jet.OLEDB.4.0; " + ("data source=" + myInt + ";" + "Extended Properties=Excel 8.0;")));

         OleDbDataAdapter ada = new OleDbDataAdapter("SELECT * FROM [MarkingSheet$]", conn);

         DataSet ds = new DataSet();

         conn.Open();             

         ada.Fill(ds.Tables[0]);

         conn.Close();

         BindingSource bs = new BindingSource();
         bs.Datasource = ds.Tables[0];

         dataGridView1.DataSource = bs;

      }
  catch(OledbException x)
      {
        // Handle Exception
      }

編集* *

接続文字列を次のように変更してみてください:-

string connString = "provider=Microsoft.Jet.OLEDB.4.0;Data source=" + myInt + ";Extended Properties=Excel 8.0;HDR=Yes;IMEX=1\";";
于 2012-12-12T18:45:09.323 に答える