C# + SQL pomocy

0

Witam z góry przepraszam za nazwę tematu ale nie wiedziałem jak to nazwać... piszę mały programik w połączeniu z bazą SQL i mam pewien problem. Może od początku... posiadam tabele w której do nazwy mam przypisane ceny i teraz chce aby po wybraniu z comboboxa nazwy i wpisaniu w drugiego textboxa wartości wyliczało mi wartość końcową do kolejnego textboxa.... nie wiem czy to dobrze opisałem. Mam nadzieje że ktoś mi pomoże :D

0

No i dokładnie jaki masz problem z tym połączeniem? Jaka jest treść błędu?

0

Na razie jestem na etapie uzupełniania tych danych z ręki do textboxów i wybierania z listy i nie mam pojęcia jak to zamienić żeby robiło mi się z automatu.

0

Z tego co ja zrozumiałem to chcesz wybierać z listy jakiś np. produkt, następnie wpisać ręcznie ilość, i pokazać w kolejnym miejscu wyliczoną wartość.
Czyli np.: wybierasz "chleb", podajesz 10 jako ilość, cena w bazie danych to 10 zł czyli suma = 10* 10 = 100 zł.
Zgadza się?

Z czym masz KONKRETNIE problem?
Prześlij kod który już masz.

0

Dokładnie o to mi chodzi :D na razie mam to napisane tak bardzo łopatologicznie więc wybacz :)

private void btnDodZamDodaj_Click(object sender, EventArgs e)
{

        if (!edycja)
        {
            int id_gat = (from x in baza.podzial_tuszy_miesas
                              where x.nazwa == cbGatunek.Text.ToString()
                              select x.id_gatunek).FirstOrDefault();

            int prac = (from p in baza.pracowniks
                        where p.nazwisko == cbPracownik.Text.ToString()
                        select p.id_pracownik).FirstOrDefault();

            int fir = (from f in baza.firmas
                       where f.nazwa_firmy == cbFirma.Text.ToString()
                       select f.id_firmy).FirstOrDefault();

            

            zamowienie zam = new zamowienie
            {
                id_partia = 1,
                id_zamowienie = id + 1,
                gatunek = id_gat,
                ilosc = Convert.ToInt32(txtIlosc.Text),
                data_zamówienia = DateDateTimePickerDZam.Value,
                data_realizacji = DateDateTimePickerDZam.Value,
                pracownik = prac,
                firma = fir,
                wartość = Convert.ToInt32(txtWartosc.Text),
                realizacja = real
            };

            baza.zamowienies.InsertOnSubmit(zam);
            baza.SubmitChanges();
            MessageBox.Show("Dane zostały wprowadzone.");
            this.Close();
        }
        else
        {
            zamowienie query = (from x in baza.zamowienies
                                where x.id_zamowienie == id
                                select x).FirstOrDefault();

            int idgat = (from x in baza.podzial_tuszy_miesas
                         where x.nazwa == cbGatunek.Text.ToString()
                         select x.id_gatunek).FirstOrDefault();

            int idprac = (from x in baza.pracowniks
                          where x.nazwisko == cbPracownik.Text.ToString()
                          select x.id_pracownik).FirstOrDefault();

            int idfirm = (from x in baza.firmas
                         where x.nazwa_firmy == cbFirma.Text.ToString()
                         select x.id_firmy).FirstOrDefault();


            zamowienie z = query;

            z.gatunek = idgat;
            z.ilosc = Convert.ToDecimal(txtIlosc.Text);
            z.data_zamówienia = DateDateTimePickerDZam.Value;
            z.data_realizacji = DateDateTimePickerDZam.Value;
            z.pracownik = idprac;
            z.firma = idfirm;
            z.wartość = Convert.ToDecimal(txtWartosc.Text);
            z.realizacja = real;

            baza.SubmitChanges();
            MessageBox.Show("Dane zostały edytowane.");
            this.Close();
        }
    }
0

Bo tu jest z edycją już :)

0

Bindujesz tego ComboBoxa z wybraną tabelą w bazie. Ustawiasz w comboboxie Value Member na kolumne Cena.
Później w evencie pobierasz combobox1.SelectedValue i masz cenę wybranego itemu.
Nie próbowałem ogarnąć co robisz w podanym kodzie.

0

Dobra postaram się ogarnąć :)

0

No tak to proste, wykorzystaj zdarzenia (onchange) związane ze zmianą zawartości pola wagi,ilości i pola kombo (ceny).
Szybki przykład :
Zdarzenie zmiany dla combobox trzeba włączyc po zbindowaniu comboboxa danymi z bazy.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace wfa_test {


    public partial class Form1 : Form {

        public Form1() {
            InitializeComponent();
            }

        private void tbxPrice_TextChanged(object sender, EventArgs e) {
            calculate();
            }


        private void calculate() {
            double value = 0.0D;
            if (tbxValue.Text != "")
                value = Convert.ToDouble(tbxValue.Text);
            var ditem = comboBox1.SelectedItem;
            double price = (ditem as Datas).priceValue;
            label1.Text = string.Format("{0}", price * value);

            }

        private void Form1_Load(object sender, EventArgs e) {
            fillComboBox();
            }

        private void fillComboBox() {
            comboBox1.BeginUpdate();
            comboBox1.Items.Clear();
            comboBox1.Items.Add(new Datas { itemName = "Wybierz produkt", priceValue = 0.00D });
            comboBox1.Items.Add(new Datas { itemName = "Ogórki", priceValue = 2.99D });
            comboBox1.Items.Add(new Datas { itemName = "Kalafiory", priceValue = 3.99D });
            comboBox1.Items.Add(new Datas { itemName = "Kapusta", priceValue = 1.99D });
            comboBox1.DisplayMember = "itemName";
            comboBox1.ValueMember = "priceValue";
            comboBox1.SelectedIndex = 0;
            comboBox1.SelectedValueChanged += new System.EventHandler(comboBox1_SelectedValueChanged);
            comboBox1.EndUpdate();
            }

        private void comboBox1_SelectedValueChanged(object sender, EventArgs e) {
            calculate();
            }

        }

    public class Datas {
        public string itemName { get; set; }
        public double priceValue { get; set; }
        }

    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1