我正在使用datetimepicker控件在C#中创建一个应用程序。我在MS Access中创建了一个数据库,其中包含一个包含Date_Entry, Emp_No, Emp_Name, In_Time, Out_Time
列的表。
现在,我想通过单击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());
}
}
}
答案 0 :(得分: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();
}
}
}
希望它有所帮助。
答案 1 :(得分:0)
要回答有关“错误1”的问题,System.Data.OleDb.OleDbParameterCollection'不包含'Addwithvalue'的定义,也没有扩展方法'Addwithvalue'接受类型为'System.Data.OleDb'的第一个参数。 OleDbParameterCollection'“
......你是Google吗? https://www.google.nl/search?q=Addwithvalue它实际上向你展示了什么是错的。
关于选择日期:read this。这可能很棘手。确保使用正确的语法。