Turinys:

EAL-Industri4.0-RFID duomenų rinkimo duomenų bazė: 10 žingsnių (su nuotraukomis)
EAL-Industri4.0-RFID duomenų rinkimo duomenų bazė: 10 žingsnių (su nuotraukomis)

Video: EAL-Industri4.0-RFID duomenų rinkimo duomenų bazė: 10 žingsnių (su nuotraukomis)

Video: EAL-Industri4.0-RFID duomenų rinkimo duomenų bazė: 10 žingsnių (su nuotraukomis)
Video: ProxiTrak RFID IOT 2024, Liepa
Anonim
EAL-Industri4.0-RFID duomenų rinkimo duomenų bazė
EAL-Industri4.0-RFID duomenų rinkimo duomenų bazė

Dette projekt omhandler opsamling af vægtdata, registration of af ideniteter vha. RFID, bauginantys duomenys ir „MySQL“duomenų bazė. mazgas-RED, samt fremvisning og behandling af of opsamlede data i et C# program i form of en Windows Form Application. Pagal miško žvalgytoją:

Vi har en produktionslinje som produrer leverpostej i 200g foliebakker. Visi išradimai ir paspaudimai naudojant RFID žymes ir plastikinius gaminius/lipdukus, som indeholder et unikt ID (UID = Unique Identifier, er en 32 bits kode, 8 hexadecimale karakterer), skirtas identifikuoti, jei reikia. Da færdigvægten af hver enkelt bakke leverpostej kan svinge (afhængig af råvarer, fordampning i ovn mm), og da kunderne hver har et specificikt krav færdigvægten, bruges UID tagget til at knytte hver enkelt leverpostej til en specific lagerlok, leverpostejer til aš specificik kunde. Prekybos centras:

1. Irma. Vægten på Irmas luksus leverpostej skal holde sig inden for +/- 5%, altså minimum 190g og maksimum 210g.

2. Brugsenas. Sumažinkite „Brugsens“sverpostej skal holde sig inden +/- 10%, ne mažiau kaip 180 g ir ne daugiau kaip 220 g.

3. Aldi. Vægten på Aldis nuolaida sverpostej skal holde sig inden +/- 15%, ne mažiau kaip 170 g ir ne daugiau kaip 230 g.

Der er således følgende sorteringer:

Diapazonas 0: už diapazono ribų

1 diapazonas: mažiausiai 190 g/maksimalus 210 g

2 diapazonas: mažiausiai 180 g/maksimalus 220 g

3 diapazonas: mažiausiai 170 g/maksimalus 230 g

1 veiksmas: „Af“duomenų registravimas naudojant „Vægt Samt“registruojant Af UID

„Opsamling Af Data for Vægt Samt“registruojant Af UID
„Opsamling Af Data for Vægt Samt“registruojant Af UID

Til opsamings af data for vægt, its registering on RFID tags on anvendt ir Arduino MEGA2560 su en RFID-RC522 skaitytuvas/rašytojas. Da vi ikke har nogen vægt, simulerer vi data for vægten med et potmeter tilsluttet en analog indgang på Arduinoen.

Populiariausias variantas:

1 stk potmeter 25k lineært. Yder-benene er tilsluttet hhv. GND og +5V, vidurinis tinklas arba tilsluttet AN0

RFID-RC522 arba „Arduino“plokštės SPI prievadas, skirtas šiai legendai:

SDA -> 53 kaištis

SCK -> kaištis52

MOSI -> pin51

MISO-> pin50

IRQ -> NC

GND -> GND

RST -> kaištis5

3.3V -> 3.3V

Išsamūs duomenys, skirti hhv. UID ir leidimai, siunčiami iš serijinio prievado prie kom ir atskiro teksto teksto viduryje iki mazgo-Red som står for den efterfølgende præsentation on et dashboard and laring in en database.

2 žingsnis: „Arduino“programa

I „Arduino“programuoja rašalą į bibliotekos SPI.h ir MFRC522.h, skirtą RFID radijo bangoms. Aš pradedu nuo programuojamo inicializavimo kintamojo. Der laves in instans af MFRC522. I sąrankos blokų inicijavimas, draudžiantis seriją, SPI porten og MFRC522. Atlikti nuskaitymą po RFID žymių. Dėl ikke at sende det samme UID afsted flere gange efter hinanden, er der lavet en stump kode som tjekker for dette. Naudojant nuskaitymo tinklą ir UID žymę, bet kuriuo atveju yra užrakintas nyUID ir neto tinkamiausias UID. „Hvis array nyUID“- tai senų UID klaidų istorija, kuri dabar yra UID, kai jie siunčia serijos prievadą. „Hvis nyUID“ir „oldUID“yra skirtingi, jie pasakoja apie vieną UID žymą ir UID'et skal ignoruoja. Išsami informacija apie UID, siunčiama UID'et på den serielle port sammen med en læst værdi fra den serielle port. Panašiai žiūrėkite skaleres iki området 150-250. Duomenys siunčiami som en komma-separeret tekststreng. Išsami informacija apie senus UID = nyUID, kodai ir kodų klavišai, taip pat ir RFID žyma. Išskirkite funkcijų programą, skirtą funkcijoms, skirtoms 2 masyvams. Funkcijos grąžinimo tiesa hvis array'ne er ens, o false hvis array'ne er forskellige.

#įtraukti

#include // Ši programa nuskaito RFID korteles naudodami RDIF-RC522 skaitymo/rašymo plokštę. // Skaitomas UID, skaitomas analoginis kaištis. Analoginė vertė 0-1023 padidinama iki 150-250. // UID ir analoginė reikšmė siunčiama kaip kableliais atskirtas tekstas nuosekliajame prievade naudojant 9600, N, 8, 1. // Buvo pasirūpinta, kad kiekvienas UID būtų siunčiamas tik vieną kartą iš eilės, // naujas UID turi būti esantį prieš tai, kai tas pats UID gali būti išsiųstas dar kartą. // Ši funkcija įgyvendinama kode, lyginant masyvus: oldUID nyUID funkcijoje array_cmp (oldUID , nyUID )

constexpr uint8_t RST_PIN = 5;

constexpr uint8_t SS_PIN = 53; int sensorPin = A0; int Reikšmė = 0; Styga StringValue = "0000"; baitas oldUID [4] = {}; baitas nyUID [4] = {};

MFRC522 mfrc522 (SS_PIN, RST_PIN); // Sukurti MFRC522 egzempliorių.

negaliojanti sąranka ()

{Serial.begin (9600); // Inicijuoti serijinį ryšį SPI.begin (); // Inicijuoti SPI magistralę mfrc522. PCD_Init (); // Inicijuoti MFRC522}

tuštumos kilpa ()

{// Ieškokite naujų kortelių, jei (! Mfrc522. PICC_IsNewCardPresent ()) {return; } // Pasirinkite vieną iš kortelių, jei (! Mfrc522. PICC_ReadCardSerial ()) {return; } // įkelti nyUID su UID žyma (baitas i = 0; i <mfrc522.uid.size; i ++) {nyUID = mfrc522.uid.uidByte ; } // jei oldUID nyUID if (! array_cmp (oldUID, nyUID)) {// siųsti UID žymą nuosekliajame prievade (baitas i = 0; i 1000) {Value = 1000; } Vertė = (vertė / 10) + 150; // siųsti mastelio analoginę reikšmę Serial.print (Value); // siųsti naują eilutę Serial.println (); // nustatyti oldUID = nyUID (baitui z = 0; z <4; z ++) oldUID [z] = nyUID [z]; } // palaukti 1 sek. delsą (1000); }

// palygink 2 masyvus …

loginis masyvas_cmp (baitas a , baitas b ) {bool test = true; // patikrinkite, ar kiekvienas elementas yra tas pats. jei tik vienas nėra, grąžinkite klaidą (baitas n = 0; n <4; n ++) {if (a [n]! = b [n]) test = false; // jei baitas nelygus, test = false} if (test == true) return true; else return false; }

3 žingsnis: „Node-RED“, „Lagring Af Data I“duomenų bazė

„Node-RED“, „Lagring Af Data I“duomenų bazė
„Node-RED“, „Lagring Af Data I“duomenų bazė
„Node-RED“, „Lagring Af Data I“duomenų bazė
„Node-RED“, „Lagring Af Data I“duomenų bazė

Pagrindinis srautas su raudonu mazgu:

COM4 yra draudžiamas duomenų perdavimas iš „Arduino“plokštės. Funkcijos „Split and Get value“ir „Split and Get UID“skirstytuvo tekstai yra komentuojami ir grąžinami. Nustatykite brėžinius iki fremvisning på prietaisų skydelio ir linijinės schemos bei masto. UID dažniai ir tekstas. Funkcijos test_sound advarer verbalt med sætningen "Out of range", hvis vægten er under 170g eller over 230g, dvs i range 0.

Padalinkite ir gaukite vertę:

var išvestis = msg.payload.split (',');

temp = {naudingoji apkrova: (išvestis [1])}; grąžinimo temperatūra;

Padalinti ir gauti UID:

var išvestis = msg.payload.split (",");

temp = {naudingoji apkrova: išvestis [0]}; grąžinimo temperatūra;

test_sound:

var numeris = parseInt (msg.payload);

if (skaičius> 230 || skaičius <170) {newMsg = {naudingoji apkrova: "Už diapazono ribų"}; return newMsg; } else {newMsg = {payload: ""}; return newMsg; }

Funkcijos Split string "," indsætter et timestamp, UID og vægten and en database patedb.patelog.

var išvestis = msg.payload.split (","); // padalinti žinutes.payload kableliu į masyvą

UIDTag = išėjimas [0]; // pirmoji dalis į pirmą poziciją [0] ValueTag = output [1]; // antra dalis į antrą poziciją [1]

var m = {

tema: "INSERT INTO patedb.patelog (laiko žymė, UID, svoris) VALUES ('"+nauja data (). toISOString ()+"', '"+UIDTag+"', '"+ValueTag+"');" }; grąžinti m;

patelog er lt MySQL duomenų bazė uždraudė som er sat op med følgende parametrą:

Šeimininkas: localhost

Uostas: 3306

Vartotojas: root

Duomenų bazė: patedb

4 žingsnis: duomenų bazės kūrimas

Duomenų bazės dizainas
Duomenų bazės dizainas

Databasen patedb indeholder 4 tabeller

patelog duomenų bazėje, perkelia duomenis į mazgą-RED ir C# programą

ordertable er en tabel som indeholder data om de genemførte ordrer, tilskrives data af C# programmet

customertable er et kunderegister

rangetable er en tabel som indeholder grænseværdierne for de i C# programmet benyttede range.

5 žingsnis: „Patelog“

Patelog
Patelog

Tabellen patelog indeholder folgende 6 kolonner:

pateID (int) yra pagrindinis raktas ir automatinis spausdinimas.

Laiko žyma, UID ir jos tipas varchar (med forskellig max længde)

diapazonasNr er af typen tinyint (beregnes ir tilføjes af C# programmet)

orderID er af typen int (orderID tilføjes af C# programmet)

Node-RED tilføjer ikke værdier til kolonnerne rangeNr og orderID. rangeNr og orderID žemės dirbimo mašina NULL værdier, det bruges i C# programmet til and detektere de rækker som skal tilskrives værdier for rangeNr og orderID

6 žingsnis: užsakomas

Užsakoma
Užsakoma

ordertable indeholder 5 kolonner:

orderID (int) er det aktuale ordrenummer

orderQuant (mediumint) er ordens pålydende antal

quantProduced (mediumint) er antal der rent faktisk er produret på ordren. (Tælles af C# programmet)

komentaras (tinytext) er en eventuel kommentar til ordren.

customerID (int) er det aktuale kundenummer på ordren.

7 žingsnis: pritaikymas

Individualus
Individualus

customertable indeholder 6 kolonner:

customerID (int) er pirminis raktas ir auto inc.

vardas, adresas, telefonas, el. paštas (varchar) med forskellig max længde

diapazonasNr (int)

8 žingsnis: diapazonas

Diapazonas
Diapazonas

„rangetable indeholder 3 kolonner“:

rangeNr (int) er pirminis raktas ir auto inc.

diapazonasMin (int)

rangeMax (int)

9 žingsnis: C# programa

C# programa
C# programa

Når der produres en ordre leverpostej, er Procedur følgende:

Kundenummer, ordrenummer, ordreantal and en eventuel kommentar indtastes i C# programmet (i Practice overføres det digitalt from virksomhedens ordresystem. Produktionen startes nu ved tryk på 'start'- knappen. Når en leverpostej er færdigproduceret og låget er den monte) på et transportbånd) Samhørende Værdier af UID ir den aktuelle vægt siunčia serijà iki mazgo-RED, kai visi mato de opsamlede data på dashboard 'et. Samtidig skrives timestamp, UID og vægt i en ny række i patedb.patelog tabellen. Da der på nuv. tidspunkt ikke tilskrives værdier til rangeNr og orderID vil de have værdien NULL.

Med ir laikmačio intervalas C# programuoja patedb.patelogtabellen, skirtą naujam laikui, NULL værdier i rangeNr kolonnen. Når der er detekteret en række med NULL værdi, beregnes rangeNr og det tilføjes sammen med det aktuelle orderID. Når en ordre er productionret, afsluttes ordren ved tryk på”stop”- knappen. Når ordren afsluttes, tilføjes en række til patedb.ordertable med de aktuelle ordredata. Jei norite, kad būtų siunčiama informacija, galite gauti duomenų ir patelogo lentelių fremvises ved and trykke på de forskellige knapper i gruppen Update DataGridview. ordertable kan også vises, og der kan søges ordredata på individualeller UID'er eller kundedata på individualelle ordrer.

naudojant sistemą; naudojant System. Collections. Generic; naudojant System. ComponentModel; naudojant System. Data; naudojant „System. Drawing“; naudojant System. Linq; naudojant System. Text; naudojant System. Threading. Tasks; naudojant System. Windows. Forms; naudojant MySql. Data. MySqlClient;

vardų sritis show_data_from_database

{viešoji dalinė klasė Form1: Forma {MySqlConnection connection = new MySqlConnection ("datasource = localhost; username = root; password = ''"); int Eilutės numeris = 0; // Kintamasis, skirtas pašteto ID vertei saugoti int RangeNumber = 0; // Kintamasis, skirtas rangenumber saugojimui int weight = 0; // Kintamasis svoriui saugoti int OrderNr = 0; // OrderNR kintamasis int QuantProduced = 0; // Kintamasis, skirtas saugoti pagamintam kiekiui int NumberOfRows = 0; // eilučių su nuliais skaičius.. bool ProdRunning = false; // Kintamasis, nurodantis, ar įjungimo ir sustabdymo mygtukai buvo suaktyvinti int limit = new int [6]; // inicijuoti masyvą int CustomerID; // kintamasis, skirtas kliento ID viešai formai saugoti1 () {InitializeComponent (); load_table (); // call load_table}

void load_table ()

{MySqlCommand komanda = naujas MySqlCommand ("SELECT * FROM patedb.patelog ORDER BY timestamp DESC;", connection); pabandykite {MySqlDataAdapter adapter = new MySqlDataAdapter (); adapteris. SelectCommand = komanda; DataTable dbdataset = new DataTable (); adapter. Fill (dbdataset); BindingSource bsource = naujas BindingSource (); bsource. DataSource = dbdataset; dataGridView1. DataSource = bsource; SetRowOrder (); adapteris. Atnaujinti (dbdataset); } sugauti (išimtis, pvz.) {MessageBox. Show (pvz., pranešimas); }}

private void SetRowOrder ()

{dataGridView1. Columns ["pateID"]. DisplayIndex = 0; // Jos kan rækkefølgen af kolonner ændres dataGridView1. Columns ["timestamp"]. DisplayIndex = 1; // Jos kan rækkefølgen af kolonner ændres dataGridView1. Columns ["UID"]. DisplayIndex = 2; // Jos kan rækkefølgen af kolonner ændres dataGridView1. Columns ["weight"]. DisplayIndex = 3; // Jos kan rækkefølgen af kolonner ændres dataGridView1. Columns ["rangeNr"]. DisplayIndex = 4; // Jos kan rækkefølgen af kolonner ændres dataGridView1. Columns ["orderID"]. DisplayIndex = 5; // Her kan rækkefølgen af kolonner ændres}

private void GetData_Click (objekto siuntėjas, „EventArgs e“) // Skaito duomenų bazės lentelę ir užsakymus pagal laiko žymę

{load_table (); }

private void btnRefreshUID_Click (objekto siuntėjas, „EventArgs e“) //

{string timeStr = "SELECT * FROM patedb.patelog ORDER BY UID;"; MySqlCommand komanda = new MySqlCommand (timeStr, connection); pabandykite {MySqlDataAdapter adapter = new MySqlDataAdapter (); adapteris. SelectCommand = komanda; DataTable dbdataset = new DataTable (); adapter. Fill (dbdataset); BindingSource bsource = naujas BindingSource (); bsource. DataSource = dbdataset; dataGridView1. DataSource = bsource; SetRowOrder (); adapteris. Atnaujinti (dbdataset); } sugauti (išimtis, pvz.) {MessageBox. Show (pvz., pranešimas); }}

private void btnRefreshValue_Click (objekto siuntėjas, „EventArgs e“)

{string weightSort = "SELECT * FROM patedb.patelog UŽSAKYTI PAGAL CAST (svoris, PASIRAŠYTAS INTEGERIS);"; MySqlCommand komanda = new MySqlCommand (weightSort, connection); pabandykite {MySqlDataAdapter adapter = new MySqlDataAdapter (); adapteris. SelectCommand = komanda; DataTable dbdataset = new DataTable (); adapter. Fill (dbdataset); BindingSource bsource = naujas BindingSource (); bsource. DataSource = dbdataset; dataGridView1. DataSource = bsource; SetRowOrder (); adapteris. Atnaujinti (dbdataset); } sugauti (išimtis, pvz.) {MessageBox. Show (pvz., pranešimas); }}

private void ChkNullBtn_Click (objekto siuntėjas, „EventArgs e“)

{if (ProdRunning) {CheckTableForNull (); load_table (); }}

private void CheckTableForNull ()

{// Tikrinti/nustatyti laikmačio intervalą mažiausiai 100 ms int i; int. TryParse (textTimer1. Text, out i); if (i <100) {timer1. Stop (); i = 100; laikmatis1. Intervalas = i; MessageBox. Show ("Minimali vertė i 100mS"); laikmatis1. Pradėti (); } else {timer1. Intervalas = i; } textTimer1. Text = timer1. Interval. ToString (); // Patikrinkite, ar lentelėje yra eilučių su nuliu, grąžina kintamojo eilučių skaičių: NumberOfRows string weightStr = ""; string chkNull = "SELECT COUNT (*) FROM patedb.patelog WHERE rangeNR NULL ORDER BET pateid LIMIT 1;"; MySqlCommand komanda = new MySqlCommand (chkNull, connection); pabandykite {connection. Open (); NumberOfRows = Convert. ToInt32 (command. ExecuteScalar ()); jungtis. Uždaryti (); } sugauti (išimtis, pvz.) {MessageBox. Show (pvz., pranešimas); } pagaliau {if (NumberOfRows! = 0) {try {// Parenka mažiausią pateID numerį, kur rangeNr yra NULL string readID = "SELECT pateID FROM patedb.patelog WHERE rangeNR NULL ORDER BY patehet ASC LIMIT 1;"; MySqlCommand cmdID = naujas MySqlCommand (readID, ryšys); {connection. Open (); Eilutės numeris = (int) cmdID. ExecuteScalar (); // sveikas skaičius !! jungtis. Uždaryti (); } listPateID. Text = RowNumber. ToString (); // perskaityti pasirinktą PateID numerį // Parenka svorį iš pasirinktos eilės numerio eilutės eilutės = RowNumber. ToString (); string readweight = "SELECT weight FROM patedb.patelog WHERE pateID =" + eilutė; „MySqlCommand“cmdweight = naujas „MySqlCommand“(skaitymo svoris, ryšys); {connection. Open (); weightStr = (eilutė) cmdweight. ExecuteScalar (); // Styga !! jungtis. Uždaryti (); } svoris = int. Parse (weightStr); // konvertuoti į int txtWeight. Text = svoris. ToString (); // spausdinti int RangeNumber = 0; if (svoris> = ribos [0] && svoris = ribos [2] && svoris = ribos [4] && svoris <= ribos [5]) {RangeNumber = 3; }} txtRange. Text = RangeNumber. ToString (); UpdateLog (); } sugauti (išimtis, pvz.) {MessageBox. Show (pvz., pranešimas); } QuantProduced = QuantProduced + 1; }}} private void btnStart_Click (objekto siuntėjas, EventArgs e) {if (ProdRunning == false) {int valtest; pabandykite {CustomerID = int. Parse (txtCustomerNr. Text); // skaityti customerID} catch {MessageBox. Show ("Įveskite gamybos duomenis ir paspauskite mygtuką" pradėti "."); }

string test = "SELECT COUNT (*) FROM patedb.customertable WHERE customerID ="+kliento ID;

MySqlCommand cmdtestcustomer = naujas MySqlCommand (testas, ryšys); {connection. Open (); valtest = Convert. ToInt32 (cmdtestcustomer. ExecuteScalar ()); // grąžina 0, jei klientui nėra ryšio. Uždaryti (); } if (valtest == 1) // jei klientas yra duomenų bazėje - pradėkite gamybą {try {OrderNr = int. Parse (txtOrderNumber. Text); ProdRunning = tiesa; laikmatis1. Pradėti (); textTimer1. Text = timer1. Interval. ToString (); „ReadLimits“(); } catch (Exception ex) {MessageBox. Show ("Įveskite gamybos duomenis ir paspauskite mygtuką" Pradėti "."); }} else MessageBox. Show ("Kliento nėra duomenų bazėje, bandykite dar kartą"); } // ReadLimits (); }

private void ReadLimits ()

{// Skaito ribas nuo diapazono lentelės, diapazonas nuo 1 iki 3 int counter = 0; for (int rangeNr = 1; rangeNr <4; rangeNr ++) {string readmin = "SELECT rangeMin FROM patedb.rangetable WHERE rangeNr ="+rangeNr; MySqlCommand cmdmin = naujas MySqlCommand (readmin, ryšys); {connection. Open (); ribos [skaitiklis] = (int) cmdmin. ExecuteScalar (); skaitiklis = skaitiklis + 1; jungtis. Uždaryti (); } // MessageBox. Show (counter. ToString ()); string readmax = "SELECT rangeMax FROM patedb.rangetable WHERE rangeNr =" + rangeNr; MySqlCommand cmdmax = naujas MySqlCommand (readmax, ryšys); {connection. Open (); ribos [skaitiklis] = (int) cmdmax. ExecuteScalar (); skaitiklis = skaitiklis + 1; jungtis. Uždaryti (); }} // pabaiga ciklui}

private void UpdateLog ()

{// UPDATE rangeNR & orderID string Range = RangeNumber. ToString (); eilutė Užsakymas = UžsakymoNr. ToString (); string update = "UPDATE patedb.patelog SET rangeNr ="+Range+','+"orderID ="+OrderNr+"WHERE pateID ="+RowNumber; MySqlCommand updatecmd = naujas MySqlCommand (atnaujinimas, ryšys); pabandykite {connection. Open (); updatecmd. ExecuteNonQuery (); jungtis. Uždaryti (); } sugauti (išimtis, pvz.) {MessageBox. Show (pvz., pranešimas); }}

private void btnStop_Click (objekto siuntėjas, „EventArgs e“)

{if (ProdRunning == true) {timer1. Stop (); ProdRunning = klaidinga; UpdateOrderTable (); } else {MessageBox. Show ("Gamyba dar nepradėta. Įveskite duomenis ir paspauskite mygtuką" Pradėti "); }}

private void UpdateOrderTable ()

{string insert = "INSERT INTO patedb.ordertable (orderID, orderQuant, quantProduced, comment, customerID) VALUES ('" + this.txtOrderNumber. Text + "', '" + this.txtOrderQuant. Text + "', '" + QuantProduced. ToString ()+"','"+this.txtComment. Text+"','"+this.txtCustomerNr. Text+"');"; MySqlCommand insertcmd = naujas MySqlCommand (įterpti, prijungti); pabandykite {connection. Open (); insertcmd. ExecuteNonQuery (); jungtis. Uždaryti (); „QuantProduced“= 0; } sugauti (išimtis, pvz.) {MessageBox. Show (pvz., pranešimas); }}

private void timer1_Tick (objekto siuntėjas, „EventArgs e“)

{CheckTableForNull (); load_table (); }

private void btnShowOrderTable_Click (objekto siuntėjas, „EventArgs e“)

{if (ProdRunning == false) {MySqlCommand command = new MySqlCommand ("SELECT * FROM patedb.ordertable ORDER BY orderID DESC;", ryšys); pabandykite {MySqlDataAdapter adapter = new MySqlDataAdapter (); adapteris. SelectCommand = komanda; DataTable dbdataset = new DataTable (); adapter. Fill (dbdataset); BindingSource bsource = naujas BindingSource (); bsource. DataSource = dbdataset; dataGridView1. DataSource = bsource; adapteris. Atnaujinti (dbdataset); } sugauti (išimtis, pvz.) {MessageBox. Show (pvz., pranešimas); }} else {MessageBox. Show ("Paspauskite stop, kad surastumėte orderTable"); }}

private void btnShowOrderDetails_Click (objekto siuntėjas, „EventArgs e“)

{if (ProdRunning == false) {string test = ("SELECT patedb.ordertable.orderID, orderQuant, quantProduced, komentuoti, kliento ID iš patedb.ordertable INNER JOIN patedb.patelog ON patedb.patelog.orderID = patedb.ordertable.orderID WHERE patedb.patelog. UID = '" + txtShowOrderDetails. Text +" ""); MySqlCommand komanda = new MySqlCommand (test, connection); pabandykite {connection. Open (); MySqlDataAdapter adapteris = naujas MySqlDataAdapter (); adapteris. SelectCommand = komanda; DataTable dbdataset = new DataTable (); adapter. Fill (dbdataset); BindingSource bsource = naujas BindingSource (); bsource. DataSource = dbdataset; dataGridView1. DataSource = bsource; adapteris. Atnaujinti (dbdataset); } sugauti (išimtis, pvz.) {MessageBox. Show (pvz., pranešimas); } jungtis. Uždaryti (); } else {MessageBox. Show ("Paspauskite sustabdyti, kad peržiūrėtumėte išsamią užsakymo informaciją"); }}

private void btnShowCustomerDetails_Click (objekto siuntėjas, „EventArgs e“)

{if (ProdRunning == false) {string test = ("SELECT patedb.customertable.customerID, name, address, phone, email, rangeNr FROM patedb.customertable INNER JOIN patedb.ordertable ON patedb.ordertable.customerID = patedb.customertable. kliento ID WHERE patedb.ordertable.orderID = '" + txtShowCustomerDetails. Text +" ""); MySqlCommand komanda = new MySqlCommand (test, connection); pabandykite {MySqlDataAdapter adapter = new MySqlDataAdapter (); adapteris. SelectCommand = komanda; DataTable dbdataset = new DataTable (); adapter. Fill (dbdataset); BindingSource bsource = naujas BindingSource (); bsource. DataSource = dbdataset; dataGridView1. DataSource = bsource; adapteris. Atnaujinti (dbdataset); } sugauti (išimtis, pvz.) {MessageBox. Show (pvz., pranešimas); }} else {MessageBox. Show ("Paspauskite stop, kad sužinotumėte išsamią klientų informaciją"); }}}

}

Rekomenduojamas: