[ ghost2k3 @ 01.09.2007. 17:48 ] @
Evo ovako napisao sam sledeci kod u c#:
Code:

string source = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\nekabaza.mdf;Integrated" +
            " Security=True;Connect Timeout=30;User Instance=True";
string sql_insert = "INSERT INTO polje1 (naziv) VALUES ('blablabla')";
SqlConnection conn = new SqlConnection(source);
conn.Open();
SqlCommand insertcmd = new SqlCommand(sql_insert, conn);
insertcmd.ExecuteNonQuery();
conn.Close();

I nece da radi.
insertcmd.ExecuteNonQuery(); mi vrati (int) 1, sto znaci da je jedan row dodat, ali nije. Nema ga u bazi.
Jel treba jos nesto da dodam ili ...?
[ bjevta @ 01.09.2007. 21:06 ] @
Obriši ono "User Instance = True" i probaj da sve uglaviš u transakciju:
Code:

            SqlCommand insertcmd = new SqlCommand(sql_insert, conn);
            SqlTransaction transaction = null;
            try
            {
                transaction = conn.BeginTransaction();
                insertcmd.Transaction = transaction;
                insertcmd.ExecuteNonQuery();
                transaction.Commit();
            }
            catch(Exception ex)
            {
                transaction.Rollback();
            }

Breakpoint na rollback pa, ako ima greške, videće se
[ MarkoBalkan @ 01.09.2007. 21:58 ] @
imas gresku kod sql-a.

"Insert into tablica(Id,Ime,Prezime)" & "Values(1,Marko,Ta)"
[ Shevchenko @ 02.09.2007. 01:07 ] @
Pogledaj da li ti je ukljucena opcija da kopira bazu u bin pri kompajliranju :)
Mozda on ubaci dobro, ali ti kada pogledas bazu nema nista :)
A i kao sto rece MarkoBalkan, SQl ti ne valja ;)
[ ghost2k3 @ 02.09.2007. 08:49 ] @
Nisam siguran na kakvu gresku mislite?
Sta ovde "INSERT INTO tabla1 (naziv_polja) VALUES ('blablabla')" ne valja?
polje1 sam gore stavio za ime tabele, pa vas je mozda to zbunilo ili mislite na nesto drugo?
[ MarkoBalkan @ 02.09.2007. 09:03 ] @
Citat:
ghost2k3: Nisam siguran na kakvu gresku mislite?
Sta ovde "INSERT INTO tabla1 (naziv_polja) VALUES ('blablabla')" ne valja?
polje1 sam gore stavio za ime tabele, pa vas je mozda to zbunilo ili mislite na nesto drugo?


napisao sam ti.
pogledaj dvostruke navodnike kod " & "Values
[ ghost2k3 @ 02.09.2007. 09:03 ] @
Stavio sam ono sa transakcijom i isao korak po korak sve odradi, samo sto u bazi nema nista!?
Inace kada obrise User Instance=true, nece da radi.
Gde da vidim da li kopira bazu u bin prilikom kompajliranja?
[ ghost2k3 @ 02.09.2007. 09:11 ] @
INSERT INTO "table_name" ("column1", "column2", ...)
VALUES ("value1", "value2", ...)

ovo je sintaksa INSERT-a, a ovo je zvanican primer:

INSERT INTO Store_Information (store_name, Sales, Date)
VALUES ('Los Angeles', 900, 'Jan-10-1999')

Po cemu se sad moj INSERT razilkuje?

INSERT INTO table1(polje1) VALUES('blabla')
[ ghost2k3 @ 02.09.2007. 09:17 ] @
Da napomenem da sam to isto radio i sa Access-om i sve je sljakalo odlicno. Onda sam se prebacio na sql2005 sto sam dobio uz visual studio 2005 express i select radi odlicno, medjutim, insert ne radi.
[ ghost2k3 @ 02.09.2007. 11:06 ] @
Prebacio sam se ponovo na access i sve radi:
Code:

string source = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\cs\baza.mdb";
string sql_insert = "INSERT INTO table(naziv) VALUES('"+textBox1.Text+"');
OleDbConnection conn = new OleDbConnection(source);
conn.Open();
OleDbCommand insertcmd = new OleDbCommand(sql_insert, conn);
insertcmd.ExecuteNonQuery();
conn.Close();


Ne znam koji moj nece da radi sa sql serverom?!
[ Shevchenko @ 02.09.2007. 15:54 ] @
Probaj sledece, da odmah nakon inserta ispises sadrzaj baze pomocu Select-a.
Jer posto ti ExecuteNonQuery vraca 1 znaci da je jedan red unet :) Samo pitanje je u koju bazu :)
U bin folderu pogledaj da li ti je prilikom kompajliranja kopirao bazu, i pogledaj da li je u njoj izvrsena promena (najverovatnije da jeste) :)
Pogledaj propertise baze, koja se nalazi u Data Folderu, i postavi oprciju Copy to Output Directory postavi na "Copy if Newer"
[ ghost2k3 @ 02.09.2007. 17:46 ] @
U medjuvremenu sam podesio da ne kopira bazu, odnosno "Copy If Newer".
Ne moze probao sam to sa SELECT. U stvari ja ubacujem neke stvari u bazu koje su odmah potom vidljive u combo boxu, tako sam inace i video da se nista ne ubacuje, jer se nije pojavljivalo posle unosa u comboboxu.
Ni jednoj bazi ne mogu da nadjem to sto sam ubacio.
Da ExecuteNonQuery mi vraca 1, ali gde on upise i da li zaista upise, nemam pojma.
Otvorio sam sve moguce baze koje postoje, odnosno jednu te istu na raznim mestima, ali nigde nema dodatog dela.
Inace imam jos jedno pitanje.
Pokrenuo sam SQL Server Management Studio Express, inace i da bi napravio bazu, a i da bi proverio ima li sta u bazi.
Medjutim posle toga, cak ni kada sam ga ugasio, nisam mogao da pristupim bazi iz C#?!
Tek kada sam restartovao racunar sam mogao. Nemogu nikako uporedo da koristim da dva programa, iskreno receno ni ne treba mi da ih koristim uporedo, ali me nerviralo sto sam par puta restartovao racunar bez potrebe.
Mislim da cu da zamenim par redova i to sve odradim u access bazi.
[ ghost2k3 @ 04.09.2007. 08:15 ] @
Resio sam problem.
Connestion string nije valjao, iako je select radio.
SQL je sasvim u redu, odnosno radi sa njim.