Я очень начинающий программист, пытающийся написать небольшое программное обеспечение.
В этом коде я пытаюсь предварительно заполнить текстовое поле в форме деталями из базы данных OleDB при новом выборе ComboBox.
По сути, щелчок по имени в ComboBox приведет к предварительному заполнению некоторых текстовых полей подробностями об этом имени.
Проблема в том, что код не присваивает значения из данных в текстовые поля. Вместо этого в текстовом поле отображается «0».
Как мне обойти это?
private void cbbEmployees_SelectedIndexChanged(object sender, EventArgs e)
{
int PayrollNo = 0;
int AnnualHolidayEntitlemet = 0;
int DaysTakenToDate = 0;
string Query = "SELECT PayrollNo, AnnualHolidayEntitlement, DaysTakenToDate FROM [Employee] WHERE FirstName + ' ' + LastName = ?";
string ConnString = @"Provider = Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\HoliPlanData.accdb;Persist Security Info=False";
using (OleDbConnection conn = new OleDbConnection(ConnString))
using (OleDbCommand GetAllcmd = new OleDbCommand(Query, conn))
{
conn.Open();
GetAllcmd.Parameters.Add("?", OleDbType.VarChar).Value = cbbEmployees.Text;
GetAllcmd.Parameters.Add("@PayrollNo", OleDbType.VarChar).Value = PayrollNo;
GetAllcmd.Parameters.Add("@AnnualHolidayEntitlement", OleDbType.VarChar).Value = AnnualHolidayEntitlemet;
GetAllcmd.Parameters.Add("@DaysTakenToDate", OleDbType.VarChar).Value = DaysTakenToDate;
GetAllcmd.ExecuteScalar();
txtPayrollNo.Text = PayrollNo.ToString();
txtAHE.Text = AnnualHolidayEntitlemet.ToString();
txtDTTD.Text = DaysTakenToDate.ToString();
txtDaysRemaining.Text = (AnnualHolidayEntitlemet - DaysTakenToDate).ToString();
}
}
PayrollNo
, когда вы работаетеExecuteScalar
- person Takarii   schedule 25.02.2016WHERE
? имя и фамилия разные столбцы? вы указываете, где несколько таких столбцов. - person Takarii   schedule 25.02.2016