Если номер счета существует, то показать сообщение уже существует
Как я могу проверить, если Билла нет. уже сохраненный в базе данных, то в окне сообщения show bill no. уже существует, где идентификатор компании, у меня есть 1 billno. textbox для ввода bill no. если я не войду ни в какое нет. это автоматически увеличивает 1 на 1. Если я введу любое другое нет, как: 11, что магазин и начать увеличивать 11, один за другим.
вот я и пытаюсь.Он работает успешно, но это не проверка нет. число существует или нет
<pre> private int billno(string p) { Int32 Billno = 0; //s = Billno; cmd = new SqlCommand(p, con); int k; con.Open(); if (txtbill.Text != "") { //check(); //cmd = new SqlCommand("IF NOT EXISTS (SELECT Billno FROM MainBillForm WHERE Company_ID = Company_ID)Select ISNULL(Max(Billno+1),1) From MainBillForm where Company_ID=" + GlobalVariable.companyId, con); Billno = Convert.ToInt32(txtbill.Text); k = Billno; s = k; k = (Int32)cmd.ExecuteScalar(); con.Close(); return Billno; } else { //s = k + 1; Billno = s; Billno = (Int32)cmd.ExecuteScalar(); con.Close(); return Billno; }
полудиск = полудиск + преобразование.ToDouble (g1. Cells[8].FormattedValue.Метод toString());
overallttl = overallttl + конвертировать.ToDouble (g1. Cells[9].FormattedValue.Метод toString());
// overallttl_wtax = overallttl_wtax + конвертировать.Метод todouble(Г1.Клетки[16].FormattedValue.Метод toString());
}
}
catch (исключение)
{
Ящик для сообщений.Шоу("уже доб");
}
двойная скидка = 0;
если (discounttxt.Текст != усилитель"" &;&амп; chk_DiscPerct.Проверено = = верно)
{
скидка = (_subTotal * Convert.ToDouble(discounttxt. Text)) / 100;
}
еще если (discounttxt.Текст! = "")
{
скидка = конвертация.ToDouble(discounttxt. Text);
}
SqlCommand cmd1 = new SqlCommand ("insert into MainBillForm (Billno,Name,Date,Shipped_Details,Order_Number,Sno,Product_Name,Description,Hsn_Code,Qty,Unit,Rate,Amount,Discount,Taxable_Amount" +
"Addcost, Sub_Total,Sub_Discount,Total_Amount, Company_ID)" +
"Значения ('"+ Billno + "', '" + custid +"', '" + dateTimePicker1.Текст + "', '" + comboShipped.Выбранное значение.ToString ()+"', '" + ONtxt.Текст + "','" + 0 + "','" +"0" + "','"
+ "0" + "','" + "0" + "','" + "0" + "','" + "0" + "','" +0 + "','"
+ semittl + "', '" + semidisc+"', '" + overallttl+"', '" + Convert.Метод todouble(пустой(addcosttxt.Текст)) + "','" + Преобразование.Метод todouble(пустой(totalamounttxt.Текст)) + "','" + скидка+ "','" + преобразование.Метод todouble(пустой(txtNewTotal.Текст)) + "'," + GlobalVariable.companyId + ")", кон);
против.Открыть();
cmd1.Метод executenonquery();
против.Закрывать();
comboBox_Custname.Текст = "";
//dateTimePicker1.Значение = Дата И Время.Теперь; ONtxt.Текст = "";
totalamounttxt.Текст = "";
comboBoxproduct.Текст = "";
дектхт.Текст = "";
combounit.Текст = "";
qtytxtprice.Текст = "";
txtqty.Текст = "";
txttax.Текст = "";
дисконт.Текст = "";
addcosttxt.Текст = "";
txtNewTotal.Текст = "";
Подтекст.Текст = "";
txtdiscount.Текст = "";
практическое руководство.Строк.Четкий();
Ящик для сообщений.Показать("Запись Успешно Вставлена ");
}
Что я уже пробовал:
<pre>private void Insertbtn_Click(object sender, EventArgs e) { if (comboBox_Custname.SelectedIndex == 0)//Nothing selected { MessageBox.Show("You must select a ComboBox Values type"); comboBox_Custname.Focus(); return; } if (dataGridView.RowCount == 0) { MessageBox.Show("there are no items in the list to add"); return; } string custid = ""; if (comboBox_Custname.SelectedIndex < 0) { try { cmd = new SqlCommand("insert into Customer_Details(CustName) values(@CustName)", con); con.Open(); cmd.Parameters.AddWithValue("@CustName", comboBox_Custname.Text); cmd.ExecuteNonQuery(); con.Close(); } catch { } try { SqlCommand cmd = new SqlCommand("SELECT max(CustID)FROM Customer_Details", con); SqlDataAdapter sda = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); sda.Fill(dt); custid = dt.Rows[0][0].ToString(); } catch { } } else { custid = comboBox_Custname.SelectedValue.ToString(); } int Billno = billno("IF NOT EXIST( Select ISNULL(Max(Billno+1),1) From MainBillForm where Company_ID=)" + GlobalVariable.companyId) ; double semittl=0, semidisc=0, overallttl = 0 , overallttl_wtax = 0; try { foreach (DataGridViewRow g1 in dataGridView.Rows) { //double ttl = (Convert.ToDouble(g1.Cells[4].FormattedValue.ToString()) * Convert.ToDouble(g1.Cells[6].FormattedValue.ToString())); SqlCommand cmd = new SqlCommand("insert into MainBillForm (Billno,Name,Date,Shipped_Details,Order_Number,Sno,Product_Name,Description,Hsn_Code,Qty,Unit,Rate,Amount,Discount,Taxable_Amount" + "Addcost,Sub_Total,Sub_Discount,Total_Amount,Company_ID) " + " Values ('" + Billno + "','" + custid + "','" + dateTimePicker1.Text + "','" + comboShipped.SelectedValue.ToString() + "','" + ONtxt.Text + "','" + Convert.ToInt16(g1.Cells[0].FormattedValue.ToString()) + "','" + g1.Cells[17].FormattedValue.ToString() + "','" + g1.Cells[2].FormattedValue.ToString() + "','" + g1.Cells[3].FormattedValue.ToString() + "','" + g1.Cells[4].FormattedValue.ToString() + "','" + g1.Cells[18].FormattedValue.ToString() + "','" + g1.Cells[6].FormattedValue.ToString() + "','" + g1.Cells[7].FormattedValue.ToString() + "','" + g1.Cells[8].FormattedValue.ToString() + "','" + g1.Cells[9].FormattedValue.ToString() + "','" + g1.Cells[10].FormattedValue.ToString() + "','" + g1.Cells[11].FormattedValue.ToString() + "','" + g1.Cells[12].FormattedValue.ToString() + "','" + g1.Cells[13].FormattedValue.ToString() + "','" + g1.Cells[14].FormattedValue.ToString() + "','" + g1.Cells[15].FormattedValue.ToString() + "','" + 0.00 + "','" + 0.00 + "','" + 0.00 + "','" + g1.Cells[16].FormattedValue.ToString() + "','" + GlobalVariable.companyId + "')", con); con.Open(); cmd.ExecuteNonQuery(); con.Close(); semittl = semittl + Convert.ToDouble(g1.Cells[7].FormattedValue.ToString());
Richard MacCutchan
Ваш код широко открыт для SQL-инъекций. Используйте правильные параметризованные запросы из проверенных входных данных, а не конкатенированные строки. Кроме того, не используйте строки для хранения дат/времени, используйте соответствующие типы Date или DateTime.