private void textBox_BarCode_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { foreach (Control x in this.Controls) { if (x is TextBox) { TextBox tb = x as TextBox; if (tb.Name == "textBox_BarCode") { continue; } tb.Text = ""; } } textBox_BarCode.SelectAll(); GetConnection gc = new GetConnection(); using (SqlConnection cnn = gc.ConnectionString("新新")) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cnn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "產品資料BarCode查詢"; cmd.Parameters.Add("@barcode", SqlDbType.NVarChar).Value = textBox_BarCode.Text; cmd.Parameters.Add("@number", SqlDbType.Int); cmd.Parameters.Add("@name", SqlDbType.NVarChar, 30); cmd.Parameters.Add("@item", SqlDbType.NVarChar, 20); cmd.Parameters.Add("@quantity", SqlDbType.Int); cmd.Parameters["@number"].Direction = ParameterDirection.Output; cmd.Parameters["@name"].Direction = ParameterDirection.Output; cmd.Parameters["@item"].Direction = ParameterDirection.Output; cmd.Parameters["@quantity"].Direction = ParameterDirection.Output; cnn.Open(); SqlDataReader dr = cmd.ExecuteReader(); try { //用條碼機取得產品編號 int ans = int.Parse(cmd.Parameters["@number"].Value.ToString()); textBox_Number.Text = ans.ToString(); textBox_Name.Text = cmd.Parameters["@name"].Value.ToString(); textBox_Item.Text = cmd.Parameters["@item"].Value.ToString(); //如果是出貨表或進貨表的話,SHOW出庫存數量 if (InsertTableName == "進貨表" || InsertTableName == "出貨表") { label_QuantityShow.Text = "目前庫存量: " + cmd.Parameters["@quantity"].Value.ToString(); } } catch (Exception ex) { if (InsertTableName != "產品資料") { MessageBox.Show("找不到符合的產品!"); } } cmd.Dispose(); dr.Close(); cnn.Close(); } } } }
private void button1_Click(object sender, EventArgs e) { GetConnection gc = new GetConnection(); using (SqlConnection cnn = gc.ConnectionString("新新")) { using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = cnn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = proc; try { switch (InsertTableName) { case "產品資料": cmd.Parameters.Add("@number", SqlDbType.Int).Value = int.Parse(textBox_Number.Text); cmd.Parameters.Add("@item", SqlDbType.NVarChar).Value = textBox_Item.Text; cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = textBox_Name.Text; if (String.IsNullOrEmpty(textBox_BarCode.Text)) { cmd.Parameters.Add("@barcode", SqlDbType.NVarChar).Value = DBNull.Value; } else { cmd.Parameters.Add("@barcode", SqlDbType.NVarChar).Value = textBox_BarCode.Text; } break; case "庫存表": cmd.Parameters.Add("@number", SqlDbType.Int).Value = int.Parse(textBox_Number.Text); cmd.Parameters.Add("@quantity", SqlDbType.Int).Value = int.Parse(textBox_Quantity.Text); break; case "進貨表": case "出貨表": cmd.Parameters.Add("@number", SqlDbType.Int).Value = int.Parse(textBox_Number.Text); cmd.Parameters.Add("@price", SqlDbType.Int).Value = int.Parse(textBox_Price.Text); cmd.Parameters.Add("@quantity", SqlDbType.Int).Value = int.Parse(textBox_Quantity.Text); break; } cmd.Parameters.Add("@count", SqlDbType.Int).Direction = ParameterDirection.ReturnValue; cnn.Open(); int cc = cmd.ExecuteNonQuery(); cmd.Dispose(); cnn.Close(); //看是要不要直接回寫還是USER要換表刷新才能看到資料新增 if (ReturnTable) { DataRow rr = Source.NewRow(); switch (InsertTableName) { case "產品資料": rr["編號"] = int.Parse(textBox_Number.Text); rr["項目"] = textBox_Item.Text; rr["品名"] = textBox_Name.Text; rr["條碼"] = textBox_BarCode.Text; break; case "庫存表": rr["編號"] = int.Parse(textBox_Number.Text); rr["數量"] = int.Parse(textBox_Quantity.Text); break; case "進貨表": rr["編號"] = int.Parse(textBox_Number.Text); rr["數量"] = int.Parse(textBox_Quantity.Text); rr["進貨價格"] = int.Parse(textBox_Price.Text); break; case "出貨表": rr["編號"] = int.Parse(textBox_Number.Text); rr["數量"] = int.Parse(textBox_Quantity.Text); rr["出貨價格"] = int.Parse(textBox_Price.Text); break; } Source.Rows.Add(rr); } if (cc > 1) { MessageBox.Show("新增成功!"); } else { MessageBox.Show("新增失敗!"); } //清除所有格子的字 foreach (var x in this.Controls) { if (x is TextBox) { TextBox tb = x as TextBox; tb.Clear(); } } label_QuantityShow.Text = ""; } catch (Exception ex) { MessageBox.Show(ex.Message); } textBox_BarCode.Focus(); } } }