我有一個庫存界面的特定部分,需要員工從組合框中選擇他或她的名字,然後將產品掃描到分配給員工姓名的表格。C#編輯按鈕訪問數據庫
我的好奇心是:當打到EDIT
,ADD
或DELETE
按鈕,它知道什麼表,在從交換機執行此功能 - 上面有該僱員姓名案例聲明。問題是,這段代碼對每個員工來說都很長,特別是對於9名員工,每個員工都有一個Switch - Case聲明。
有關如何簡化或縮短代碼的任何建議?我事先明白了我無法使用的參數化的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;
}
}
**警告**您的代碼非常容易受到SQL注入攻擊 –
是的......我知道。這是一個由9個人使用的本地接口,他們對嘗試破解接口沒有興趣。 – CamlCase
請驗證我你的實際問題是? 「問題是,這段代碼對於每個員工來說都很長,特別是對於每個員工都有一個Switch-Case聲明的9名員工。」 –