0

datetimepicker コントロールを使用している C# で 1 つのアプリケーションを作成しています。Date_Entry, Emp_No, Emp_Name, In_Time, Out_Time列を持つ 1 つのテーブルを含むデータベースを MS Access で作成しました。

datetimepicker コントロールの日付をクリックして、テキスト ボックスでこれらのデータを取得したいと考えています。この日付はDate_Entry、データベースのフィールドの日付を指し、その日付に従ってデータを取得します。

どうやってするの?

 private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
 {
 try
 {
 OleDbConnection conn = new OleDbConnection    ("Provider=Microsoft.Jet.OLEDB.4.0,DataSource=C:\\Users\\jd\\Desktop\\Attendance.mdb");
 OleDbCommand cmd = new OleDbCommand("SELECT * FROM Attendance_Details WHERE Date_Entry=" +     dateTimePicker1.Value + "", conn);
 cmd.CommandType = CommandType.Text;
 OleDbDataAdapter da = new OleDbDataAdapter(cmd);
 DataSet ds = new DataSet();
 da.Fill(ds, "Attendance_Details");
 txtDate.Text = ds.Tables[0].Rows[0][0].ToString();
 txtEmpNo.Text = ds.Tables[0].Rows[0][1].ToString();
 txtEmpName.Text = ds.Tables[0].Rows[0][2].ToString();
 txtInTime.Text = ds.Tables[0].Rows[0][3].ToString();
 txtOutTime.Text = ds.Tables[0].Rows[0][4].ToString();
 }
 catch (Exception ex)
 {
 MessageBox.Show(ex.ToString());
 }
 }
 }
4

2 に答える 2

0

上記のコードにはいくつかの問題があります。精錬しました。これで動作します。

以下はコードである必要があります:

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
 {
 try
 {

 OleDbConnection conn = new OleDbConnection    ("Provider=Microsoft.Jet.OLEDB.4.0,DataSource=C:\\Users\\jd\\Desktop\\Attendance.mdb");
 con.open();
 OleDbCommand cmd = new OleDbCommand("SELECT * FROM Attendance_Details WHERE Date_Entry=@dtpDate", conn);
 cmd.Parameters.Addwithvalue("@dtpDate", dateTimePicker1.Value);
 cmd.CommandType = CommandType.Text;
 OleDbDataAdapter da = new OleDbDataAdapter(cmd);
 DataSet ds = new DataSet();
 da.Fill(ds);
 txtDate.Text = ds.Tables[0].Rows[0][0].ToString();
 txtEmpNo.Text = ds.Tables[0].Rows[0][1].ToString();
 txtEmpName.Text = ds.Tables[0].Rows[0][2].ToString();
 txtInTime.Text = ds.Tables[0].Rows[0][3].ToString();
 txtOutTime.Text = ds.Tables[0].Rows[0][4].ToString();
 con.close();
 }
 catch (Exception ex)
 {
 MessageBox.Show(ex.Message);
 }
 finally
 {
   con.close();
 }
 }
 }

その役に立つことを願っています。

于 2013-05-15T05:12:02.690 に答える
0

「エラー 1 'System.Data.OleDb.OleDbParameterCollection' には 'Addwithvalue' の定義が含まれておらず、タイプ 'System.Data.OleDb.OleDbParameterCollection' の最初の引数を受け入れる拡張メソッド 'Addwithvalue' もありません」に関する問題に答えるには、

...Google で調べましたか?https://www.google.nl/search?q=Addwithvalue実際に何が問題なのかを示しています。

日付の選択について:こちらをお読みください。それは難しいかもしれません。正しい構文を使用していることを確認してください。

于 2013-05-15T08:01:32.520 に答える