| 分類:[C#]
ExcelファイルとDataSetのマージに関して教えてください。
現在、ユーザデータを保持しているMDBファイルからエクセルを書き出しています。 エクセルファイルの役割はDBのバックアップです。
ここまでは、作成できているのですが 出力したエクセルファイルにユーザを追加して、プログラムに読み込ませた際に MDBファイルとエクセルファイルでマージを行いたいのですが期待通りの動きをしてくれません。
よろしければ、どこが変か教えて頂けないでしょうか?
try { if (File.Exists(ofd.FileName)) { // "Data Source" パラメータを変更してください。 string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + ofd.FileName + "; Extended Properties=Excel 8.0;";
//エクセルからDataSetにデータを読ませる string cmd = "SELECT * FROM [UserData$]"; DataSet ds = getXlsSheetData(sConnectionString, cmd, "UserData"); c1Fg_SV1.DataSource = ds.Tables[0];
//MDBファイルを読み込む DataSet dsUserData = null; string sqlCommand = "SELECT UserID, Pass, RegistDate FROM UserData;"; getUserDbData(sqlCommand, ref dsUserData);
//dsUserData.Merge(ds, true, MissingSchemaAction.Error);
//マージする dsUserData.Merge(ds, false); c1Fg_SV0.DataSource = dsUserData.Tables[0];
} }
//エクセルのデータをDataSetに入れる public DataSet getXlsSheetData(string conn, string cmd, string tableName) { OleDbConnection objConn = null; OleDbCommand objCmdSelect = null; OleDbDataAdapter objAdapter = null; DataSet objDataSet = null;
try { objConn = new OleDbConnection(conn); objConn.Open(); objCmdSelect = new OleDbCommand(cmd, objConn); objAdapter = new OleDbDataAdapter(); objAdapter.SelectCommand = objCmdSelect; objDataSet = new DataSet(); objAdapter.Fill(objDataSet, tableName); } catch (OleDbException OleEx) {
} finally { if (objConn != null) { objConn.Dispose(); } if (objCmdSelect != null) { objCmdSelect.Dispose(); } if (objAdapter != null) { objAdapter.Dispose(); } if (objDataSet != null) { objDataSet.Dispose(); } }
return objDataSet; }
|