ID を介して正確な結果を検索できるアプリケーションを作成しようとしています。ID がわからない場合は、名前の一部を検索して、一致するアカウントを返すことができます。
たとえば、Bob Jones は ID A01 です。A01 を検索して Bob Jones を返すか、B を検索して Bob Jones、Bradley Smith などを返すことができます。
私は ID 部分をうまくコーディングしましたが、実際には同じコードである場合、2 番目の部分が機能しません。
private void btnSaveEmployees_Click(object sender, EventArgs e)
{
{
//First search for the entered text to see if it is an ID
DataBase db = new DataBase(); //Construct a new database.
db.OpenConnection(); //Open our Database connection
MySqlCommand mysqlCmd = new MySqlCommand("SELECT * FROM `employees` WHERE `employee_ID` = @employeeID LIMIT 1", db.connection);
mysqlCmd.Parameters.AddWithValue("@employeeID", txtEmployeeID.Text);
MySqlDataReader reader = mysqlCmd.ExecuteReader(); //Construct a reader
if (reader.Read())
{
//Employee ID has been found so lets update the update form.
Form employee = new UpdateEmployee(reader["firstName"].ToString(), reader["lastName"].ToString(), reader["contactNumber"].ToString(), reader["employee_access_level"].ToString());
employee.Show();
}
else
{
db.CloseConnection();
db.OpenConnection();
MySqlDataReader Reader2;
MySqlCommand mysqlCmd2 = new MySqlCommand("SELECT firstName, LastName FROM `employees` WHERE `firstName` LIKE '"+txtEmployeeID.Text+"';", db.connection);
//mysqlCmd2.Parameters.AddWithValue("@textbox", txtEmployeeID.Text);
Reader2 = mysqlCmd2.ExecuteReader(); //Construct a reader
while (Reader2.Read()==false)
{
listboxFindEmployees.Visible = true;
string thisrow = "";
for (int i = 0; i < Reader2.FieldCount; i++)
thisrow += Reader2.GetValue(i).ToString() + ",";
listboxFindEmployees.Items.Add(thisrow);
}
}
}
}