» »

C#.Net aplikacija

C#.Net aplikacija

brinovcek ::

Imam probleme pri dodajanju uporabnika v tabelo v access 2007 DB. Prosim če bi mi kdo znal pomagat... zmeraj se mi izvede catch blok pa še sam ne vem zakaj saj mi prevajalnik ne javi ob prevajanju nobene napake. Je mogoče narobe kaken connectionString al pa kej podobnga ???
Poleg tega ime zanima tudi, kako bi v nekem Formu s pritiskom na gumb odprl novo okno, probala sm že z ukazom Application.Run(new Form2()) pa ne gre :(

Koda je sledeča:

OleDbConnection con=null;
OleDbCommand vstavi = null;
string dodaj = "INSERT INTO Delavci (ID_delovca,Ime,Priimek)VALUES(@id,@i,@p)";
con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=C:/Documents and Settings/student/My Documents/Evidenca ur.accdb");
con.Open();
try
{
vstavi = new OleDbCommand(dodaj, con);
//vstavimo indek (zadni index+1) za nov zapis
vstavi.Parameters.AddWithValue("@id", Convert.ToInt32(vstavi.ExecuteScalar()) + 1);
vstavi.Parameters.AddWithValue("@i", ime.Text);
vstavi.Parameters.AddWithValue("@p", priimek.Text);

vstavi.ExecuteNonQuery();
vstavi.Parameters.Clear();
vstavi.Dispose();
}
catch
{
MessageBox.Show("Napaka !\n Zapis ni vnešen :( ");
}

finally{
con.Close();
}

Lepo prosim za čim hitrejše nasvete!
hvala

AnonimkeOP ::

Nikoli ne smes pogoltniti napake. Ali odstrani try catch block in pusti naj se razleti ali pa vsaj prikazi napako nekje. Za zacetek odstrani try - catch block, da vidis kaj je narobe, kasneje pa se odloci kam bos logiral napake in to naredi v catch bloku:

catch(Exception e)
{
MessageBox.Show("Napaka !\n Zapis ni vnešen :( "+e.Message);
}

//pri napaki obvezno izpisi vsaj Message in StackTrace
www.anonimke.com

brinovcek ::

napiše mi sledečo napako :
System.Data.OleDb.OleDbException: No value given for one or more required parameters.

Ali potrebuješ vnašat ID, če je v nastavljen kot samoštevilo v PB ?

boogie_xlr ::

ID je pa stvar SQL baze same.
INSERT INTO tabela (ime,priimek) VALUES ("Jan","Vesel")
V tem stavku IDja ni in baza to razume, kot da mora nastaviti na "default" vrednost, torej na samoštevilo, ki je pa je za 1 večje od števila v prejšnji vrstici(samoštevilo, autonumber), NULL ali pa neki naključno, česar še ni v bazi.

V bistvu lahko ID kar izpustiš:
string dodaj = "INSERT INTO Delavci (Ime,Priimek)VALUES(@i,@p)";

Ime spremenljivke "dodaj" bi spremenil v "query" oziroma v "sql_stavek".
string query = "INSERT INTO Delavci (Ime,Priimek)VALUES(@i,@p)";

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

SQL problem

Oddelek: Programiranje
141652 (1270) win64
»

C# okna in podokna

Oddelek: Programiranje
111627 (1221) FlashM
»

razložitev nekaterij elementov v visual studio 05

Oddelek: Programiranje
72081 (1886) darkolord
»

problem v C#

Oddelek: Programiranje
211953 (1668) dvojka
»

branje byte[] iz MS access-ove baze

Oddelek: Programiranje
81894 (1804) BHawk

Več podobnih tem