データベースに接続されたデータグリッド ビューを持つメイン フォームがあります。次に、別のフォームを開くボタンがあり、そのセカンダリフォームにいくつかのボタンなどがあります。
セカンダリフォームからデータベースにクエリを実行する必要がありますが、プログラムが既にデータベースに接続されているため、まったく新しい接続を作成せずにそれを行う方法がわかりません。最初のフォームで作成した oleDB 接続を参照する方法がわかりません (コーディングはしていません。datagridview の小さな矢印を使用して、Visual Studio を使用してデータベースに接続しました)。
新しい接続を作成する代わりに、プライマリ フォームで作成された最初の接続を参照するにはどうすればよいでしょうか。
これが私のコードです:
//parameterized update query
string updateCommandString = "UPDATE RoomsTable SET [Date Checked]=@checkedDate WHERE ID = @id";
using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\users\spreston\documents\visual studio 2012\Projects\roomChecksProgram\roomChecksProgram\roomsBase.accdb"))
{
using (OleDbCommand updateCommand = new OleDbCommand())
{
OleDbTransaction transaction = null;
updateCommand.Connection = conn;
updateCommand.Transaction = transaction;
updateCommand.CommandText = updateCommandString;
updateCommand.CommandType = CommandType.Text;
updateCommand.Parameters.AddWithValue("@checkedDate", this.dateTimePicker1.Value.ToShortDateString());
updateCommand.Parameters.AddWithValue("@id", row.roomID);
try
{
conn.Open();
transaction = conn.BeginTransaction();
updateCommand.Transaction = transaction;
updateCommand.ExecuteNonQuery();
transaction.Commit();
conn.Close();
conn.Dispose();
}
catch(OleDbException ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
}