Forum » Pomoč in nasveti » 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
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
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 ?
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)";
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…
- spremenil: boogie_xlr ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL problemOddelek: Programiranje | 1687 (1305) | win64 |
» | C# okna in podoknaOddelek: Programiranje | 1652 (1246) | FlashM |
» | razložitev nekaterij elementov v visual studio 05Oddelek: Programiranje | 2107 (1912) | darkolord |
» | problem v C#Oddelek: Programiranje | 1969 (1684) | dvojka |
» | branje byte[] iz MS access-ove bazeOddelek: Programiranje | 1939 (1849) | BHawk |