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.