'Insert into table and Inner Joining 2 tables in C# Form
So I have 4 tables in MySql database, we are going to focus on 2 tables for now. I have materijal(Material) table and Skart(Scrap) table:
materijal Table (original) witch has :
idmaterijal(INT), naziv_materijala(VARCHAR), kolicina_materiala(FLOAT), mjerna_jedinica(VARCHAR), sifra_materijala(INT)
material Table(eng) :
idmaterial(INT) , name_material(VARCHAR) , quantity_material(FLOAT) , measuring_unit(VARCHAR) , code_material(INT)
skart Table (original) which has:
idskart(INT), materijal_idmaterijal(INT), kolicina_skarta(FLOAT)
scrap Table (eng):
idscrap(INT), material_idmaterial(INT), quantity_scrap(FLOAT)
They are connected with Non-Identifying Relation 1:1, as you can see in this picture https://prnt.sc/hdvGuXJWNI0Q . I want to Insert materijal_idmaterijal into skart table by choosing the name via comboBox, and kolicina_skarta via textBox, as shown in these pictures :
https://prnt.sc/kbXdQTSJ-wwt - Choosing data on comboBox witch is connected to materijal table and list all naziv_materijal
https://prnt.sc/BMvlle9M9OPI - Input data in myForm
https://prnt.sc/4rF1Ht30PDNL - What happens when I click "Snimi" button (INSERT)
This is my code for "Snimi" button :
private void button13_Click(object sender, EventArgs e) // Snimanje Skarta I Update materijal tabele
{
konekcija.Open();
//OleDbCommand komanda = new OleDbCommand();
MySqlCommand komanda = new MySqlCommand();
komanda.Connection = konekcija;
komanda.CommandType = CommandType.Text;
komanda.CommandText = "INSERT INTO skart(materijal_idmaterijal, value) value(select materijal_idmaterijal from materijal WHERE naziv_materijala = '" + comboBox1.Text + "') AND (kolicina_skarta, value) value('" + textBox7.Text + "') ";
komanda.CommandText = "UPDATE materijal SET kolicina_materijala = kolicina_materijala - '" + textBox7.Text + "' WHERE naziv_materijala = '" + comboBox1.Text + "' AND kolicina_materijala >= '" + textBox7.Text + "'";
komanda.ExecuteNonQuery();
konekcija.Close();
comboBox1.Text = "";
textBox7.Text = "";
MessageBox.Show("Uspjesno ste unijeli izabrani Škart");
}
And this is my "Osvježi" or on Eng "Refresh" button witch refreshes the dataGridView in my Skart panel :
private void button12_Click(object sender, EventArgs e) // Osvježi Skart
{
konekcija.Open();
// OleDbCommand komanda = new OleDbCommand();
MySqlCommand komanda = new MySqlCommand();
komanda.Connection = konekcija;
komanda.CommandType = CommandType.Text;
komanda.CommandText = " SELECT naziv_materijala, s.kolicina_skarta, mjerna_jedinica, sifra_materijala FROM skart AS s INNER JOIN materijal AS m ON s.materijal_idmaterijal = m.idmaterijal; ";
komanda.ExecuteNonQuery();
DataTable dt = new DataTable();
//OleDbDataAdapter da = new OleDbDataAdapter(komanda);
MySqlDataAdapter da = new MySqlDataAdapter(komanda);
da.Fill(dt);
dataGridView3.DataSource = dt;
konekcija.Close();
}
It uses Inner Join to merge naziv_materijala, s.kolicina_skarta, mjerna_jedinica, sifra_materijala from materijal table into skart table via idmaterijala. I want to Insert materijal_idmaterijal into skart table by choosing the name of the naziv_materijal via comboBox, and kolicina_skarta by inserting number in textBox . The codes up there are my own and it updates kolicina_materijala (eng . quantity_material) in materijal table but it doesn't insert data in skart table. Please Help. PS: Do keep in mind this is my school project and I am only starting to code in C# and crating Forms, I know my code is not clean and It could look better but I am only concerned on learning how to solve this problem.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
