Problem z dodaniem wpisu do bazy

0

Witam, robie program na zaliczenie. Program polega na wypelnieniu formularza, ktory zapisuje sie w accessie. Niestety nie moge sobie poradzić z tym aby wszystkie wypelnione pola znalazly sie w bazie... pokaze to na przykladzie kodu.

dzięki takiej zmiennej bez problemu jedno okienko formularza zapisuje mi sie w bazie
[code]string strOleQueryUpdate = "UPDATE dane SET uwagi2 = '" + uwagi2TextBox.Text +
"' WHERE Identyfikator = " + daneListBox.SelectedValue.ToString() + ";";[/code]

problem pojawia sie gdy tych okienek jest duza ilosc
kombinowalem z czyms takiem... ale nie dziala, bledow zadnych nie pokazuje, po prostu nie dopisuje do bazy:
[code] string strOleQueryUpdate = "INSERT INTO dane VALUES (wydział = " + wydziałTextBox.Text + "', rok1 = " + rok1TextBox.Text + ", rok2 = " + rok2TextBox.Text + ","
+ " nazwisko = '" + nazwiskoTextBox.Text + "', imie = '" + imieTextBox.Text + "', indeks = " + indeksTextBox.Text + ", tryb = '" + trybTextBox.Text + "', kierunek = '" + kierunekTextBox.Text + "', rok = '" + rokTextBox.Text + "', tel = " + telTextBox.Text + ", poczta = '" + pocztaTextBox.Text + "',"
+ " gmina = '" + gminaTextBox.Text + "', ulica = '" + ulicaTextBox.Text + "', miasto = '" + miastoTextBox.Text + "', wojewodztwo = '" + wojewodztwoTextBox.Text + "',"
+ " ulica2 = '" + ulica2TextBox.Text + "', miasto2 = '" + miasto2TextBox.Text + "',"
+ " klub = '" + klubTextBox.Text + "', dyscyplina = '" + dyscyplinaTextBox.Text + "', osiagniecia = '" + osiagnieciaTextBox.Text + "');";[/code]

ma ktoś jakiś pomysł ?

dołącze jeszcze kod całego form.

[code]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Naukowe {
public partial class Form5 : Form {
public Form5() {
InitializeComponent();

        Dymek.SetToolTip(wydziałTextBox, "Nazwa wydziału na którym studiuje dany student");
        Dymek.SetToolTip(rok1TextBox, "Rok akademicki w którym student ubiega się o stypendium");
        Dymek.SetToolTip(rok2TextBox, "Rok akademicki w którym student ubiega się o stypendium");

        Dymek.SetToolTip(nazwiskoTextBox, "Nazwisko studenta ubiegającego się o stypendium");
        Dymek.SetToolTip(imieTextBox, "Imie studenta ubiegającego się o stypendium");
        Dymek.SetToolTip(indeksTextBox, "Numer indeksu studenta ubiegającego się o stypendium");
        Dymek.SetToolTip(trybTextBox, "Tryb studiów: \n - dzienny, \n - zaoczny, \n - wieczorowy");
        Dymek.SetToolTip(kierunekTextBox, "Kierunek na którym studiuje petent");
        Dymek.SetToolTip(rokTextBox, "Rok studiów");
        Dymek.SetToolTip(telTextBox, "Telefon kontaktowy studenta ubiegającego się o stypendium");
        Dymek.SetToolTip(pocztaTextBox, "Adres do korespondencji elektronicznej");

        Dymek.SetToolTip(ulicaTextBox, "ulica, numer domu, numer mieszkania");
        Dymek.SetToolTip(gminaTextBox, "gmina/powiat");
        Dymek.SetToolTip(miastoTextBox, "Kod pocztowy, miejscowość");
        Dymek.SetToolTip(wojewodztwoTextBox, "Województwo w którym mieszka student na stałe");

        Dymek.SetToolTip(ulica2TextBox, "ulica, numer domu, numer mieszkania");
        Dymek.SetToolTip(miasto2TextBox, "Kod pocztowy, miejscowość");

        Dymek.SetToolTip(klubTextBox, "Klub który reprezentuje student na zawodach i turniejach");
        Dymek.SetToolTip(dyscyplinaTextBox, "Dyscyplina jaką uprawia student");
        Dymek.SetToolTip(osiagnieciaTextBox, "Dotychczasowe osiągnięcia, czyli czym może się student pochwalić");
    }

    private void Form5_FormClosed(object sender, FormClosedEventArgs e) {
    }

    private void daneBindingNavigatorSaveItem_Click(object sender, EventArgs e) {
        this.Validate();
        this.daneBindingSource.EndEdit();
        this.daneTableAdapter.Update(this.stypDataSet.dane);

    }

    private void Form5_Load(object sender, EventArgs e) {
        // TODO: This line of code loads data into the 'stypDataSet.dane' table. You can move, or remove it, as needed.

// this.daneTableAdapter.Fill(this.stypDataSet.dane);

    }

    private void Zapisz_Click(object sender, EventArgs e) {
        string _strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                    "Data Source=../Stypendium.mdb;";
        OleDbConnection _oleConnection = new OleDbConnection();
        try {
            _oleConnection.ConnectionString = _strConnection;
            _oleConnection.Open();

            OleDbCommand _oleCommand = new OleDbCommand();
            _oleCommand.Connection = _oleConnection;

// string strOleQueryUpdate = "INSERT INTO dane VALUES (24,'" + wydziałTextBox.Text.ToString() + "'," + rok1TextBox.Text.ToString() + "," + rok2TextBox.Text.ToString() + ",'" + nazwiskoTextBox.Text.ToString() + "','" + imieTextBox.Text.ToString() + "'," + indeksTextBox.Text.ToString() + ",'" + trybTextBox.Text.ToString() + "','" + kierunekTextBox.Text.ToString() + "','" + rokTextBox.Text.ToString() + "'," + telTextBox.Text.ToString() + ",'" + pocztaTextBox.Text.ToString() + "','" + ulicaTextBox.Text.ToString() + "','" + gminaTextBox.Text.ToString() + "','" + miastoTextBox.Text.ToString() + "','" + wojewodztwoTextBox.Text.ToString() + "','" + ulica2TextBox.Text.ToString() + "','" + miasto2TextBox.Text.ToString() + "','" + klubTextBox.Text.ToString() + "','" + dyscyplinaTextBox.Text.ToString() + "','" + osiagnieciaTextBox.Text.ToString() + "','" + statusCheckBox.Checked + "','" + uwagiTextBox.Text.ToString() + "','" + uwagi2TextBox.Text.ToString() + "'," + kwotaTextBox.Text.ToString() + ");";
string strOleQueryUpdate = "INSERT INTO dane VALUES (24,'" + wydziałTextBox.Text + "'," + rok1TextBox.Text + "," + rok2TextBox.Text + ",'" + nazwiskoTextBox + "','" + imieTextBox.Text + "'," + indeksTextBox.Text + ",'" + trybTextBox.Text + "','" + kierunekTextBox.Text + "','" + rokTextBox.Text + "'," + telTextBox.Text + ",'" + pocztaTextBox + "','" + ulicaTextBox.Text + "','" + gminaTextBox.Text + "','" + miastoTextBox.Text + "','" + wojewodztwoTextBox.Text + "','" + ulica2TextBox.Text + "','" + miasto2TextBox.Text + "','" + klubTextBox.Text + "','" + dyscyplinaTextBox.Text + "','" + osiagnieciaTextBox.Text + "'," + statusCheckBox.Checked + ",'" + uwagiTextBox.Text + "','" + uwagi2TextBox.Text + "'," + kwotaTextBox.Text + ");";

/* string strOleQueryUpdate = "INSERT INTO dane VALUES (" + wydziałTextBox.Text + "', rok1 = " + rok1TextBox.Text + ", rok2 = " + rok2TextBox.Text + ","
+ " nazwisko = '" + nazwiskoTextBox.Text + "', imie = '" + imieTextBox.Text + "', indeks = " + indeksTextBox.Text + ", tryb = '" + trybTextBox.Text + "', kierunek = '" + kierunekTextBox.Text + "', rok = '" + rokTextBox.Text + "', tel = " + telTextBox.Text + ", poczta = '" + pocztaTextBox.Text + "',"
+ " gmina = '" + gminaTextBox.Text + "', ulica = '" + ulicaTextBox.Text + "', miasto = '" + miastoTextBox.Text + "', wojewodztwo = '" + wojewodztwoTextBox.Text + "',"
+ " ulica2 = '" + ulica2TextBox.Text + "', miasto2 = '" + miasto2TextBox.Text + "',"
+ " klub = '" + klubTextBox.Text + "', dyscyplina = '" + dyscyplinaTextBox.Text + "', osiagniecia = '" + osiagnieciaTextBox.Text + "');";
*/ _oleCommand.CommandText = strOleQueryUpdate;
OleDbCommand commandUpdate = _oleConnection.CreateCommand();
//usuwamy stary rekord
commandUpdate.CommandText = strOleQueryUpdate;
int i = commandUpdate.ExecuteNonQuery();
Console.WriteLine();
}
catch (Exception err) {
Console.Write("Błąd przy dostępie do Bazy Danych \n" + err.Message);
}
finally {
_oleConnection.Close();
}

        try {
            StypDataSet zmiany = (StypDataSet)stypDataSet.GetChanges();
            if (zmiany == null) {
                return;
            }
            DataTable dt = zmiany.Tables["dane"];
            DataRow[] badRows = dt.GetErrors();
            if (badRows.Length == 0) {
                int numRows = daneTableAdapter.Update(zmiany);
                MessageBox.Show("Updated " + numRows + "rows", "Success");
                stypDataSet.AcceptChanges();
            }
            else {
                string errorMsg = null;
                foreach (DataRow row in badRows) {
                    foreach (DataColumn col in row.GetColumnsInError()) {
                        errorMsg += row.GetColumnError(col) + "\n";
                    }
                }
                MessageBox.Show("Errors ind data: " + errorMsg, "Please fix", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        catch (Exception ex) {
            MessageBox.Show("Error: " + ex.Message, "Errors", 
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
            stypDataSet.RejectChanges();
        }
    }

    private void rok1TextBox_Validating(object sender, CancelEventArgs e) {
        int iLiczba;
        if (!int.TryParse(rok1TextBox.Text, out iLiczba)) {
            MessageBox.Show("Wprowadź liczbę");
        }
    }

    private void rok2TextBox_Validating(object sender, CancelEventArgs e) {
        int iLiczba;
        if (!int.TryParse(rok2TextBox.Text, out iLiczba)) {
            MessageBox.Show("Wprowadź liczbę");
        }
    }

    private void indeksTextBox_Validating(object sender, CancelEventArgs e) {
        int iLiczba;
        if (!int.TryParse(indeksTextBox.Text, out iLiczba)) {
            MessageBox.Show("Wprowadź liczbę");
        }
    }

    private void telTextBox_Validating(object sender, CancelEventArgs e) {
        int iLiczba;
        if (!int.TryParse(telTextBox.Text, out iLiczba)) {
            MessageBox.Show("Wprowadź liczbę");
        }
    }

    private void rokTextBox_Validating(object sender, CancelEventArgs e) {
        int iLiczba;
        if (int.TryParse(rokTextBox.Text, out iLiczba)) {
            MessageBox.Show("Wprowadź rok studiów słownie");
        }
    }

    private void wydziałTextBox_TextChanged(object sender, EventArgs e)
    {

    }
}

}[/code]

0

Sprobuj uzyc parametrow, czyli czegos w tym stylu:

command.CommandText = "insert into tabela values(@kol1, @kol2, @kol3)";
command.Parameters.AddWithValue("@kol1", wartosc1);
command.Parameters.AddWithValue("@kol2", wartosc2);
command.Parameters.AddWithValue("@kol3", wartosc3);
command.ExecuteNonQuery();

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