|
分類:[.NET 全般]
よろしくお願いします。
開発環境はvisualstudio2005,データベースはSQLserver,言語はc#です。
表題の件で、下記のようなコードを作成しました。
int i, j; System.Data.OleDb.OleDbDataAdapter dAdp; DataSet dSet = new DataSet("t_社員"); DataTable dTbl; System.Data.OleDb.OleDbConnection cn = new System.Data.OleDb.OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=C:\\SampleDB.mdb;");
//データセットに取得する dAdp = new System.Data.OleDb.OleDbDataAdapter( "SELECT * FROM 社員", cn); dAdp.Fill(dSet, "t_社員");
//DataTableオブジェクトに取得してから結果を確認する dTbl = dSet.Tables["t_社員"]; for (i = 0; i < dTbl.Rows.Count; i++) { for (j = 0; j < dTbl.Columns.Count; j++) { MessageBox.Show(dTbl.Rows[i][j] + "\t"); } System.Diagnostics.Debug.WriteLine(""); }
内容が全く同一で、拡張子がmdf,mdbの2つのデータベースがあるとします。 上記の場合、mdbはメッセージが出るのですが、mdfのほうはOleDbExceptionを吐いてしまいます。 この場合、
・mdfはこの形式で使用できない?
また、解決策として、
・mdfをmdbに変換して対応する(逆は検索していくつか見つけましたが、こちらは見つかりませんでした。それに、仮にこれで出来たとしても 良い解決方法じゃないような気がしています)
・このやり方は適当ではない(そもそもコーディングが違う)
恐れ入りますが、よろしくお願いします。
|