[ Ognjen_NS @ 30.11.2005. 23:33 ] @
Da li moze neko da mi kaze zasto nece ovaj kod da ubaci u SQL bazu dodatni red, pocetnik sam i furam po nekoj knjizi izludeo sam, ceo dan pokusavam. U Helpu visual studia kaze da funkcija Fill(DataSet,imeTabele) vraca integer koji kaze koliko je novih redova ubaceno i meni vrati 1, a ja odem u tabelu kad tamo nista! opet isti likovi chuche
evo koda a ako moze neko da kaze zasto nece!? Hvala
public static void AddRow(DataTable myDataTable)
{
Console.WriteLine("\nDodavanje reda gde je ID_Musterija = '0411980174568'");
//korak 1: koriscenje metoda NewRow() DataRow objekta da
//bi dodali novi red u DataTable

DataRow myNewDataRow = myDataTable.NewRow();

//korak 2: namestanje vrednosti kolona novog reda
Console.WriteLine("Evo ovde sada pocinje upis vrednosti kolona!");

myNewDataRow["ID_Musterija"] = "0411980174568";
myNewDataRow["Ime"] = "Radoslav";
myNewDataRow["Prezime"] = "Krunicic";
myNewDataRow["Telefon"] = "021445770";
myNewDataRow["email"] = "[email protected]";

//korak 3: koriscenje metoda Add() za ubacivanje novog reda u DataRow
Console.WriteLine("Ubacujem sa ADD");

myDataTable.Rows.Add(myNewDataRow);

Console.WriteLine("Prihavtam promene sa Accept!");

//korak 4: koriscenje metode AcceptChanges() da bi prihvatili promene
myDataTable.AcceptChanges();
}



static void Main()
{
//formulisanje stringa za konektovanje
string connectionString = "server = OGA-9A84E78AB29; database = GlavnaBaza; trusted_connection = yes;";

//kreiranje objekta mySqlConnection
SqlConnection mySqlConnection = new SqlConnection(connectionString);
string selectString =
"SELECT ID_Musterija, Ime, Prezime, Telefon, email "+
"FROM Musterija ";


SqlCommand mySqlCommand = mySqlConnection.CreateCommand();

mySqlCommand.CommandText = selectString;


//kreiranje SqlAdapter objekta
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();

mySqlDataAdapter.SelectCommand = mySqlCommand;

//kreiranje DataSet objekta
DataSet myDataSet = new DataSet();

//otvaranje konekcije sa bazom
mySqlConnection.Open();

mySqlDataAdapter.Fill(myDataSet, "Musterija");

//kreiranje objekta myDataTable
DataTable myDataTable = myDataSet.Tables["Musterija"];

AddRow(myDataTable);

Console.WriteLine("Dopustam mu na kraju da promeni SVE TO U BAZI!");
int i = mySqlDataAdapter.Fill(myDataSet,"Musterija");
Console.WriteLine(i);
mySqlConnection.Close();
Console.WriteLine("Zatvorena konekcija sa bazom!");
}
}
}



Josh neshto, kada koristim SQL naredbu za ubacivanje u bazu a pri tom je ista konekcija, onda ubaci. Chisto ako misli neko da nije dobra konekcija sa bazom:)

[Ovu poruku je menjao Ognjen_NS dana 01.12.2005. u 00:41 GMT+1]
[ dr.AgOlO @ 01.12.2005. 14:47 ] @
Da bi sacuvao promene koje si uradio na DataSet-u koristis metod Update() DataAdaptera, a ne Fill kao sto si ti napisao.

Znaci,

dataAdapter.Update(dataSet,"ImeTabele");
dataSet.AcceptChanges();

Nadam se da sam ti pomogao.
Poz.
[ Ognjen_NS @ 01.12.2005. 23:31 ] @
nece i dalje da upise u Bazu:(
[ dr.AgOlO @ 02.12.2005. 09:14 ] @
Znas kako, DataAdapter mora da ima postavljene SelectCommand, UpdateCommand, DeleteCommand, InsertCommand kako bi mogao sve ove operacije da uradi. Da ne bi ti pisao ili da bi uopste video kako treba napisati ove komande najbolje je da prvo preko wizarda ovo odradis. Znaci prvo na WinFormu prevuces SqlConnection za konekciju koju hoces da koristis, zatim prevuci SqlDataAdapter isto i tada ces imati mogucnost da izgenerises SELECT, INSERT, UPDATE i DELETE komande. Posle selektuj taj DataAdapter i imas opciju Generate DataSet. To ti je jedan nacin.
Takodje dosta korisna je i klasa SqlCommandBuider, preko koje mozes da generises ove komande.
Code:

// dataAdapter mora da ima postavljenu SELECT komandu da bi mogao da generise ostale
SqlCommandBuilder sqlBuilder = new SqlCommandBuilder(dataAdapter);
dataAdapter.Update(dataSet,"Tabela");


Poz.
[ ismilovic @ 03.12.2005. 16:10 ] @
> //korak 4: koriscenje metode AcceptChanges() da bi prihvatili promene
> myDataTable.AcceptChanges();

Ako si novi - jedan dan ti nije ništa, meni su trebali mjeseci

Ovdje nisam primjetio
myDataAdapter.Update(myDataTable);

ti slog smještaš u memorijsku datoteku, no promjene moraš prenijet na disk
vodi računa o tome dali ti polje može biti NULL i dali su ti parametri
podešeni za to.
Meni se desilo da sam upisao slog ali ga nisam mogao editirat radi famoznog
NULL, pa sam u svako polje stavio DefaultValue
[ Ognjen_NS @ 05.12.2005. 14:23 ] @
ma trebalo je odraditi sqlDataAdapter.Update(dataSet, "ImeTabele");
:) To sam skontao sad kad radim sa dataGrid, Fill samo ispuni datagrid a Update ubacuje;)
Hvala svima