ADO.NETのデータベースについて
こんにちは。いつもお世話になっております。
プログラミングの初心者で、現在VC++でプログラムを作成しています。環境は、OSがWindowsXP、統合環境はVisualStudio2008 Professionalを使用しています.
ADO.NETでデータベースを作成しているのですが、DataSetを介して、任意のフィールドを変更・更新がうまくいきません。プログラムの内容は、保存されているAccessデータから表を読み込み、その表に対して挿入、変更、削除を行い、最後にupdateをしてAccessのデータを更新するというものです。以下、プログラムの一部を抜粋します。拙い説明で申し訳ありません。原因が分かる方、よろしくご教授ください。
m(_)m
private: bool LoadAccessFile(String^ path)
{
// コネクションを作成
OleDbConnection^ cn = gcnew OleDbConnection();
cn->ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;"
"Data Source=" + path;
// すべてのデータを読み込む
OleDbDataAdapter^ da = gcnew OleDbDataAdapter("select * from 実績テーブル", cn);
OleDbDataAdapter^ da2 = gcnew OleDbDataAdapter("select * from クエリ1", cn);
OleDbCommandBuilder^ builder = gcnew OleDbCommandBuilder(da);
//test
OleDbCommand^ selectCommand = cn->CreateCommand();
OleDbCommand^ selectCommand2 = cn->CreateCommand();
OleDbCommand^ insertCommand = cn->CreateCommand();
OleDbCommand^ updateCommand = cn->CreateCommand();
OleDbCommand^ deleteCommand = cn->CreateCommand();
selectCommand->CommandText = "select 通し番号, 日付, 内容, 金額, カテゴリー番号, 銀行口座通し番号 from 実績テーブル
where 通し番号=2";
selectCommand2->CommandText = "select 通し番号, 日付, 内容, 金額, カテゴリー名称, 銀行口座口座名称 from クエリ1";
insertCommand->CommandText = "insert into 実績テーブル (通し番号, 日付, 内容, 金額, カテゴリー番号, 銀行口座通し番号)
values (@通し番号, @日付, @内容, @金額, @カテゴリー番号, @銀行口座通し番号)";
(中略)
// OleDbDataAdapterのスキーマと、SelectCommandで抽出したデータを格納
da->FillSchema(ds, System::Data::SchemaType::Mapped);
da->Fill(ds->Tables["Table"]);
// "Table"表の2行3列目のデータを変更
ds->Tables->Add("クエリ1");
//test(090223)
DataRow^ row = ds->Tables["Table"]->Rows[1];
//Rows[0]の添え字を0以外にするとエラー。「位置1に行がありません」
DataColumn^ column = ds->Tables["Table"]->Columns[2];
row[column] = "本";
// "Table"表の0行目を削除
ds->Tables["Table"]->Rows[0]->Delete();
//Rows[0]の添え字を0以外にするとエラー。「位置1に行がありません」
お礼
ありがとうございました。