従業員がコンボ ボックスから自分の名前を選択し、従業員の名前に割り当てられたテーブルに製品をスキャンする必要がある在庫インターフェイスの特定の部分があります。
私の好奇心は次のとおりです。 [ EDIT
, ADD
OR ] ボタンを押すと、その従業員名を含むSwitch - CaseステートメントDELETE
から、この関数を実行するテーブルを認識します。問題は、各従業員のコードが長いことです。特に、Switch - Caseステートメントを持つ 9 人の従業員の場合は特にそうです。
これを簡素化する方法やコードを短くする方法について何かアドバイスはありますか? 使用に失敗しているパラメーター化された SQLについて、事前に理解しています。最初にこれを達成しようとしているだけです。
private void btnAdd_Click(object sender, EventArgs e)
{
ActiveControl = txtSerialN;
if (!string.IsNullOrEmpty(txtSerialN.Text) && !string.IsNullOrEmpty(cboEmpName.Text))
switch (cboEmpName.SelectedItem.ToString().Trim())
{
case "John Doe":
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "INSERT INTO JohnDoe(SerialNumber,PartNumber,DateEntered,Customer) values ('" + txtSerialN.Text + "','" + txtPart.Text + "','" + txtDate.Text + "','" + txtCustomer.Text + "')";
command.ExecuteNonQuery();
MessageBox.Show("Inventory Added".PadLeft(23));
connection.Close();
txtSerialN.Clear();
txtPart.Clear();
txtDate.Clear();
txtCustomer.Clear();
command.CommandText = "SELECT * FROM JohnDoe ORDER BY PartNumber";
OleDbDataAdapter db = new OleDbDataAdapter(command);
DataTable dt = new DataTable();
db.Fill(dt);
dataGridEmpParts.DataSource = dt;
}
catch (OleDbException)
{
string strmsg = "THIS SERIAL NUMBER ALREADY EXISTS ! , Please try again";
MessageBox.Show(strmsg, "YOU CAN'T ENTER THE SAME ONE AGAIN", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button1);
connection.Close();
}
break;
}
}