Sorry, it's not completely given codes to clarify the updateb() and invoice(). So for that reason, it's better off up like all codes in my specific file. So up like this.
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace superpos3
{
public partial class salesn : Form
{
public salesn()
{
InitializeComponent();
}
public static int totalPrice = 0;
public static int payment = 0;
public static int balance = 0;
MySqlConnection con = new MySqlConnection("server= localhost; database =superpos; username= root; password=; ");
public void invoice()
{
con.Open();
string query = "select max(id) from salesmain ";
MySqlCommand cmd2 = new MySqlCommand(query, con);
MySqlDataReader dr;
dr = cmd2.ExecuteReader();
if (dr.Read())
{
string val = dr[0].ToString();
if (val == "")
{
lbinvoice.Text = "1";
}
else
{
int a;
a = int.Parse(dr[0].ToString());
a = a + 1;
lbinvoice.Text = a.ToString();
}
con.Close();
}
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
private void txtno_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
txtqty.Enabled = true;
txtqty.Focus();
}
}
private void txtqty_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
try
{
string txt = "select * from products where id='" + txtno.Text + "'";
MySqlCommand cmd = new MySqlCommand(txt, con);
con.Open();
MySqlDataReader r = cmd.ExecuteReader();
while (r.Read())
{
int price = int.Parse(txtqty.Text.ToString()) * int.Parse(r[4].ToString());
totalPrice = totalPrice + price;
//discount
// totalPrice = totalPrice - totalPrice* Payment.discount/100;
dataGridView1.Rows.Add(dataGridView1.RowCount, r[0], r[1], txtqty.Text.Trim(), r[4], price);
}
lbitems.Text = " " + (dataGridView1.RowCount - 1) + "";
lbtotal.Text = " " + totalPrice + " ";
con.Close();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message, "Error From Database");
}
txtno.Focus();
txtno.Clear();
txtqty.Enabled = false;
txtqty.Clear();
}
}
private void txtqty_TextChanged(object sender, EventArgs e)
{
}
private string name;
public string Staffname
{
get { return name; }
set { name = value; }
}
public void updatedb()
{
for (int row = 0; row < dataGridView1.Rows.Count; row++)
{
string itmno = dataGridView1.Rows[row].Cells[1].Value.ToString();
string itmqty = dataGridView1.Rows[row].Cells[3].Value.ToString();
string t = "select * from products where id= '"+ itmno + "'";
string oldqty = "", newqty = "";
Connnew.DbSearch(t);
while (Connnew.dr.Read())
{
oldqty = Connnew.dr[5].ToString();
newqty = (int.Parse(oldqty) - int.Parse(itmqty)).ToString();
}
string t2 = "update products SET qty = '" + newqty + "' WHERE id = '" + itmno + "'";
//t2 = t2.Replace("{0}", itmno);
//t2 = t2.Replace("{2}", newqty);
Connnew.DbUpdate(t2);
}
}
private void salesn_Load(object sender, EventArgs e)
{
label6.Text = Staffname;
lbldate.Text = DateTime.Today.ToString("dd/MM/yyyy");
lbltime.Text = DateTime.Now.ToShortTimeString();
invoice();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = con;
cmd.CommandText = "Insert into salesproducts(saleid,productname,qty,grosstotal)values(@saleid,@productname,@qty,@grosstotal)";
cmd.Parameters.AddWithValue("@saleid", lbinvoice.Text);
cmd.Parameters.AddWithValue("@productname", dataGridView1.Rows[i].Cells[2].Value);
cmd.Parameters.AddWithValue("@qty", dataGridView1.Rows[i].Cells[3].Value);
cmd.Parameters.AddWithValue("@grosstotal", dataGridView1.Rows[i].Cells[4].Value);
MySqlCommand cmd1 = new MySqlCommand();
cmd1.Connection = con;
cmd1.CommandText = "insert into salesmain(id,date,time,cashername,qty,grosstotal)values(@id,@date,@time,@cashername,@qty,@grosstotal)";
cmd1.Parameters.AddWithValue("@id", lbinvoice.Text);
cmd1.Parameters.AddWithValue("@date", lbldate.Text);
cmd1.Parameters.AddWithValue("@time", lbltime.Text);
cmd1.Parameters.AddWithValue("@cashername", label6.Text);
cmd1.Parameters.AddWithValue("@qty", lbitems.Text);
cmd1.Parameters.AddWithValue("@grosstotal", lbtotal.Text);
con.Open();
int x = cmd.ExecuteNonQuery();
int y = cmd1.ExecuteNonQuery();
MessageBox.Show("Record added ..........");
updatedb();
dataGridView1.Rows.Clear();
lbtotal.Text = "0";
lbitems.Text = "0";
txtno.Focus();
totalPrice = 0;
con.Close();
invoice();
}
}
catch (Exception ex)
{
//MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
}
private void button2_Click(object sender, EventArgs e)
{
pay p = new pay();
p.Show();
}
private void label6_Click(object sender, EventArgs e)
{
}
}
}
And I'm seeing everything is fine and still not find the issue of those.
And the connected with above related to Connnew.DbSearch(t) that "Connnew" is like:
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
namespace superpos3
{
class Connnew
{
public static MySqlConnection con = new MySqlConnection("server= localhost; database =superpos; username= root; password=; ");
public static MySqlCommand poscmd = new MySqlCommand();
public static MySqlDataReader dr;
public static void DbSearch(string txt)
{
con.Close();
poscmd.Connection = con;
poscmd.CommandText = txt;
con.Open();
dr = poscmd.ExecuteReader();
}
public static void DbUpdate(string txt)
{
con.Close();
poscmd.Connection = con;
poscmd.CommandText = txt;
con.Open();
poscmd.ExecuteNonQuery();
}
}
}
Please let me know what is here the issue of the structure of codes or what is really going wrong.