Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

graska pri konekciji sa bazom - access

[es] :: .NET :: ASP.NET :: graska pri konekciji sa bazom - access

[ Pregleda: 1677 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zenmorke
zenmorke
student
beograd

Član broj: 176360
Poruke: 54
*.dynamic.sbb.rs.



+1 Profil

icon graska pri konekciji sa bazom - access07.09.2009. u 12:45 - pre 178 meseci
Naime,treba da se izvrsi upit nad bazom pod odredjenim uslovom.Korisnik zadaje pocetnu vrednost i krajnju vrednost(u pitanju je broj),pri cemu se ti brojevi od pocetne do krajnje vredosti takodje upisuju u bazu.svi ostali atributi su isti samo vrednosti brojeva menjaju i upisuju sa ostalim atributima u bazu.

Javlja mi gresku "ExecuteNonQuery: Connection property has not been initialized."

ali ne vidim zasto do toga dolazi pa ako imate neke sugestije i idejebicu zahvalan...

Hvala unapred.

Code:

....
{
    private ConnectToAccess baza;
    private string tabela = "TABELA";
    protected void Page_Load(object sender, EventArgs e)
    {
       
    }
    protected void btnOK_Click(object sender, EventArgs e)
    {

        int vrednost = Convert.ToInt32(txtPocetniBroj.Text);
        int krajnji = Convert.ToInt32(txtKrajnjiBroj.Text);

        try
        {
            if (vrednost <= krajnji)
            {
                baza = new ConnectToAccess(Server.MapPath("xxxxxxx.mdb"));
                string[] kolone_novi_zapis = new string[] { "atribut1", "atribut2", "atribut3", "VREDNOST", "atribut4" };
                string[] verdnosti_novi_zapis = new string[] { "\'" + atribut1.Text + "\'", "\'" + atribut2.Text + "\'", "\'" + atribut3.Text + "\'","'" +  vrednost + "'", "\'" + atribut4.Text + "\'" };
                int rez_unos_podataka = baza.AccessUpisiPodatak(verdnosti_novi_zapis, kolone_novi_zapis, tabela);
                if (rez_unos_podataka > 0)
                    vrednost++;
                else
                    lblTest.Text = "greska";
            }
            else
            {
                lblTest.Text = "greska";
            }
    
        }
        catch
        {
        }
        

    }

}

sve je s***** osim pishanja
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.adacta.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: graska pri konekciji sa bazom - access07.09.2009. u 13:12 - pre 178 meseci
Treba pogledati šta se dešava ovde:
Code:
baza.AccessUpisiPodatak(verdnosti_novi_zapis, kolone_novi_zapis, tabela);

Iz poruke se može zaključiti da komandi nisi dodelio konekciju.
 
Odgovor na temu

zenmorke
zenmorke
student
beograd

Član broj: 176360
Poruke: 54
*.dynamic.sbb.rs.



+1 Profil

icon Re: graska pri konekciji sa bazom - access07.09.2009. u 13:25 - pre 178 meseci
evo koda

Code:

....
        public string PorukaGreske;
        const string konekcioniParametri = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
        private string konekcioniString = "";
        private string putanja = "";

        public string Putanja
        {
            set
            {
                putanja = value;
                konekcioniString = konekcioniParametri + "\"" + putanja + "\"";
            }
            get { return putanja; }
        }

        private OleDbConnection konekcija = null;
        private OleDbDataReader rezultatUpita = null;

        public OleDbDataReader RezultatUpita
        {
            get { return rezultatUpita; }
        }

        public void AccessDekonekcija()
        {
            if (konekcija != null)
                konekcija.Close();
        }

        public ConnectToAccess(string a_putanja)
        {
            putanja = a_putanja;
            konekcioniString = konekcioniParametri + "\"" + putanja + "\"";
        }

        public bool AccessKonekcija()
        {
            PorukaGreske = "";
            bool rezultat = false;
            AccessDekonekcija();
            try
            {
                konekcija = new OleDbConnection(konekcioniString);
                konekcija.Open();
                rezultat = true;
            }
            catch (Exception ex)
            {
                PorukaGreske = ex.Message.ToString();
            }
            return rezultat;
        }
...


a ovo je za upit

Code:

public int AccessUpisiPodatak(string[] a_Vrednosti, string[] a_Atributi, string a_Tabela)
        {
            PorukaGreske = "";
            int rezultat = 0;
            if ((!String.IsNullOrEmpty(a_Tabela)) && (a_Atributi.Length > 0) && (a_Vrednosti.Length > 0) && (a_Atributi.Length == a_Vrednosti.Length))
            {
                string stringUpita = "INSERT INTO " + a_Tabela + " (";
                stringUpita += a_Atributi[0];
                for (int i = 1; i < a_Atributi.Length; i++)
                    stringUpita += " , " + a_Atributi[i];

                stringUpita += ") VALUES (" + a_Vrednosti[0];
                for (int i = 1; i < a_Vrednosti.Length; i++)
                    stringUpita += " , " + a_Vrednosti[i];
                stringUpita += ")";

                try
                {
                    OleDbCommand komanda = new OleDbCommand(stringUpita, konekcija);
                    rezultat = komanda.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    rezultat = -1;
                    PorukaGreske = ex.Message.ToString();
                }
            }
            return rezultat;
        }


Kada terba da mi upise jedan podatak sve je u redu,medjutim kada ga stavim u if ili do while petlju ne radi...
sve je s***** osim pishanja
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.adacta.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: graska pri konekciji sa bazom - access07.09.2009. u 14:12 - pre 178 meseci
Malo mi je teško da se snađem u tvom kodu.
Imaš 2 načina.

1. Konekciju napravi unutar metode AccessUpisiPodatak
2. Konekciju prosledi metodi AccessUpisiPodatak

Probaj malo da refaktorišeš kod. Uradi nešto ovako:
Code:

int rowsAffected = 0;

using (OleDbConnection conn = new OleDbConnection("some_connection_string"))
{
    OleDbCommand cmd = conn.CreateCommand();

    cmd.CommandText = "your_query";

    conn.Open();
    rowsAffected = cmd.ExecuteNonQuery();
}

return rowsAffected;

 
Odgovor na temu

zenmorke
zenmorke
student
beograd

Član broj: 176360
Poruke: 54
*.dynamic.sbb.rs.



+1 Profil

icon Re: graska pri konekciji sa bazom - access07.09.2009. u 14:35 - pre 178 meseci
Uspeo sam da resim.
Bilo je vise stvari u pitanju.
Prvo sam upit stavio u do while petlju i konekciju na bazu pre petlje a zatvaranje konekcije posle upita, ali jos bitnija stvar je ta da kada imas vise upita sa slicnim podacima moras da omogucih dupliranje vrednosti u polju redova u access-u. Izgleda da je to bio najveci problem...Hvala na asistenciji u svakom slucaju.

sve je s***** osim pishanja
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: graska pri konekciji sa bazom - access

[ Pregleda: 1677 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.