[ Seoski_Vrac @ 02.07.2007. 07:32 ] @
Postovani i drage kolege, imam jedan problem...zeleo sam da napravim bazicu u Accessu za potrebe jednog programcica. Elem kada sam pokusao da vezem sa bazom, t.j. kada zelim da upisem nesto u bazu nista se ne dogadja. POsavicu i prilog u vidu mog koda... posto sam napravio bazu probe radi gde ima Id, i Ime kao atributi samo...

Evo jednog koda...

private void button1_Click(object sender, EventArgs e)
{
string putanja = Directory.GetCurrentDirectory();
putanja += "\\App_Data\\Database3.mdb";
//putanja = "c:\\Database3.mdb";

OleDbConnection Veza = new OleDbConnection(@"Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" +
putanja);


OleDbCommand Komanda = Veza.CreateCommand();

Komanda.CommandText = "INSERT INTO aaa ( Ime)VALUES (@Ime)";

Komanda.Parameters.Add("@Ime", OleDbType.LongVarChar).Value = textBox1.Text;

Veza.Open();

OleDbDataReader dr = Komanda.ExecuteReader(); //CommandBehavior.SequentialAccess

dr.Close();
Veza.Close();
Veza.Dispose();

textBox1.Text = "";


A evo i druge varijante sa SQL bazom.. posto i tu nece da radi...

SqlConnection Veza = new SqlConnectiDataSource=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Database2.mdf;Integrate" +
"d Security=True;User Instance=True");

SqlCommand Komanda = Veza.CreateCommand();

Komanda.CommandText = "INSERT INTO aaa ( Ime)VALUES (@Ime)";



//OleDbConnection Veza = new OleDbConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Database2.mdf;Integrate" +
// "d Security=True;User Instance=True");

//OleDbCommand Komanda = Veza.CreateCommand();

//Komanda.CommandText = "INSERT INTO aaa ( Ime)VALUES (@Ime)";




Komanda.Parameters.Add("@Ime", SqlDbType.NVarChar, 50).Value = textBox1.Text;

Veza.Open();

SqlDataReader dr = Komanda.ExecuteReader(); //CommandBehavior.SequentialAccess

dr.Close();
Veza.Close();
Veza.Dispose();
textBox1.Text = "";



Recite mi gde gresim .. i ispravite kod.. posto ovo kada radi .. meni ne upisuje u bazu ama nista..
Unapred zahvalan.
[ Shevchenko @ 02.07.2007. 12:00 ] @
Pa kada bi stavio
Code:

Komanda.ExecuteNonQuery();

Umesto :
Code:

OleDbDataReader dr = Komanda.ExecuteReader(); //CommandBehavior.SequentialAccess

Radilo bi :)

Reader cite podatke, kao sto sam naziv govori :)

[Ovu poruku je menjao Shevchenko dana 02.07.2007. u 13:39 GMT+1]
[ fpedja @ 02.07.2007. 12:06 ] @
Na brzinu sam ti pogledao kod, moras pozvati update tabele kad upisujes nesto u tabelu. Nemam vremena da ti ispravljam kod ali evo ti primer za access, u vb.net, koji sigurno radi:
Code:

        Dim upit As String = "select * from " & imeTabele
        Dim imeTabele as String="Lst"
        Dim kon As String = "provider=Microsoft.Jet.OLEDB.4.0; data source=C:\MyData\" & imeBaze & ".mdb;"

        cn = New System.Data.OleDb.OleDbConnection(kon)
        Dim cmd As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter(upit, cn)
        Dim cb As New OleDb.OleDbCommandBuilder(cmd)
        cn.Open()
        cmd.Fill(ds, imeTabele)

       while i<10
       ds.Tables("Lst").Rows(i).Item(0)=...
       ds.Tables("Lst").Rows(i).Item(1)=...
       ...
       cmd.Update(ds, "Lst")
      end while
      cn.close()