Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C# (Builder) i upis podataka u DataBase (InterBase)

[es] :: .NET :: .NET Desktop razvoj :: C# (Builder) i upis podataka u DataBase (InterBase)

[ Pregleda: 2334 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ismilovic
Ivan Smilović
Istra

Član broj: 63197
Poruke: 89
*.net.t-com.hr.



Profil

icon C# (Builder) i upis podataka u DataBase (InterBase)09.07.2005. u 09:39 - pre 228 meseci
C"# (Builder) Upisivanje podataka u DataBase (InterBase)

Prelazim sa C++ na C# i lokalnih baza Paradox na InterBase.
Prva lekcija: Pokušavam prenijeti podatke iz lokalnih datoteka u IB, tako da sam napravio text datoteku sa podacima iz Paradox datoteke, a u C# je učitam u RichTexBox te je obrađujem ovim kodom:

private void AddData_Click(object sender, System.EventArgs e) {
DataModul DataModul = new DataModul(); // Napravit kopiju datamodula
DataModul.KpiProv.Active = false;

Borland.Data.Provider.BdpDataAdapter da = DataModul.KpiProv;
DataSet ds = DataModul.DM;
DataTable dt = DataModul.Kpi;
DataRow dr;

int n = 0;
foreach(String Line in TextDb.Lines){
n++;
dr = dt.NewRow();

int Start = 0;
// Kotistiti DataColumnCollection KPI table.
foreach(DataColumn dc in DataModul.Kpi.Columns){
int Pos = Line.IndexOf(";", Start);
string Value = Line.Substring(Start, Pos-Start);

if(dc.DataType == typeof(System.String))
dr[dc] = Value;

if(dc.DataType == typeof(System.Decimal))
dr[dc] = System.Convert.ToDecimal(Value);

if(dc.DataType == typeof(System.DateTime))
dr[dc] = System.Convert.ToDateTime(Value);

Start = Pos + 1;
}

dt.Rows.Add(dr);

if(n == 2) break; // za testiranje samo 2 retka
}
dt.AcceptChanges();
DataModul.KpiProv.Active = true;

// Kreirati privremenu DataSet variablu.
DataSet dsChanges;
// Ubaciti samo redove koji su mjenjani
dsChanges = ds.GetChanges(DataRowState.Modified);
// Kontrolirati DataSet na gresku
if(!dsChanges.HasErrors) {
// Ako nema greške obraditi sa BdpAdapterom da
// korištenim za kreiranje DataSet-a
int res = da.Update(dsChanges); // I OVO NE RADI ??????
}

Odustat.Focus();
}

Sa ovim kodom se "gledam" već sedam dana, POMAGAJTE.
 
Odgovor na temu

nervozica
Novi Beograd

Član broj: 18671
Poruke: 77
*.smin.sezampro.yu.



Profil

icon Re: C# (Builder) i upis podataka u DataBase (InterBase)11.07.2005. u 08:38 - pre 228 meseci
Citat:

int res = da.Update(dsChanges); // I OVO NE RADI ??????


da bi ovo radilo moras da kreiras
Borland.Data.Provider.BdpCommandBuilder = new Borland.Data.Provider.BdpCommandBuilder(da);
odmah nakon kreiranja DataAdaptera

[Ovu poruku je menjao nervozica dana 11.07.2005. u 09:39 GMT+1]
Djankam se, kuzish.
 
Odgovor na temu

ismilovic
Ivan Smilović
Istra

Član broj: 63197
Poruke: 89
*.net.t-com.hr.



Profil

icon Re: C# (Builder) i upis podataka u DataBase (InterBase)11.07.2005. u 12:59 - pre 228 meseci
nervozica - hvala na trudu, ali nije pomoglo.

Dodatno pojašnjenje pitanja:
da (Data adapter) je definiran u posebnom modulu nazvanom DataModul - ne pitaj zašto jer ne znam; to mi je ostalo od c++Buildera.
u istom moduli su definirane i komande
da.KpiSelect, da.KpiUpdate, .... Cijeli modul je kreiran programski kao translacija C++Builder DataModul.dfm forme u novi C# jezik.
DataModul.cs je skup definicija tabli i komandi za seriju bivših Xxx.db datoteka.

Sada zapinje na

if(!dsChanges.HasErrors) {

sa porukom:

encountered unhandled exception class System.NullReferenceException
... a ja ga ne kapim
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: C# (Builder) i upis podataka u DataBase (InterBase)

[ Pregleda: 2334 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.