UpdateCommand versus Fill
HejJeg har to datagridviews, hvor jeg har fundet ud af at lave en update kommando, så jeg også kan gemme ændringer mm i databasen.
Nu er det således, at jeg også har en form til at oprette nye kunder, når jeg går retur fra formen efter at have oprettet ny kunde, opdaterer den ikke Kunde datagridview'et. Jeg ville så forsøge at lave en fill kommando, men får samme fejl, som inden jeg lavede en CommandBuilder til update.
Jeg kan ikke finde en FillCommand, som jeg kan med delete, insert og update. Findes der ikke sådan en og hvis nej - hvad skal jeg så gøre?
mvh
simsen
Min kode:
OleDbConnection cn = null;
private DataViewManager dsView;
private DataSet ds;
private OleDbDataAdapter da1;
private OleDbDataAdapter da2;
private OleDbCommandBuilder cBuilderKunder;
private OleDbCommandBuilder cBuilderFaktura;
string myDB = "c:\\ANSI\\Fakturasystem.mdb";
public void Faktureringssystem_Load_1(object sender, EventArgs e)
{
this.firmaoplysningerTableAdapter.Fill(this.fakturasystemDataSet.Firmaoplysninger);
this.produkterTableAdapter.Fill(this.fakturasystemDataSet.Produkter);
//create a connection string to the access database
OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;
User Id=;Password=;
Data Source=" + myDB);
// Create the DataSet
ds = new DataSet("KundeFaktura");
// Fill the Dataset with Kunder, map Default Tablename
// "Table" to "Kunder".
da1 = new OleDbDataAdapter("SELECT KundeId, Navn, Adresse, Postnr, Byen, Telefonnr, Mobilnr FROM Kunder", cn);
da1.TableMappings.Add("Table", "Kunder");
da1.Fill(ds);
// Fill the Dataset with Faktura, map Default Tablename
// "Table" to "Faktura". ORDER BY FakturaID DESC
da2 = new OleDbDataAdapter("SELECT FakturaID, KundeID, Dato, BetalingsDato, Betalt FROM Faktura ORDER BY FakturaID DESC", cn);
da2.TableMappings.Add("Table", "Faktura");
da2.Fill(ds);
// Establish the Relationship "RelOrdDet"
// between Kunder ---< [Faktura]
System.Data.DataRelation relOrdDet;
System.Data.DataColumn colMaster2;
System.Data.DataColumn colDetail2;
colMaster2 = ds.Tables["Kunder"].Columns["KundeId"];
colDetail2 = ds.Tables["Faktura"].Columns["KundeID"];
relOrdDet = new System.Data.DataRelation("RelOrdDet", colMaster2, colDetail2);
ds.Relations.Add(relOrdDet);
// The DataViewManager returned by the DefaultViewManager
// property allows you to create custom settings for each
// DataTable in the DataSet.
dsView = ds.DefaultViewManager;
// Databinding for the Grid's
dgrKunder.DataSource = dsView;
dgrKunder.DataMember = "Kunder";
dgrFaktura.DataSource = dsView;
dgrFaktura.DataMember = "Kunder.RelOrdDet";
}
private void btnUpdateKunder_Click(object sender, EventArgs e)
{
//this.kunderTableAdapter.Fill(this.fakturasystemDataSet.Kunder);
builderOpbygning();
this.da1.Update(ds, "Kunder");
}
private void btnFakturaGem_Click(object sender, EventArgs e)
{
builderOpbygning();
da2.Update(ds, "Faktura");
MessageBox.Show("Ændringerne er gemt");
}
private void builderOpbygning()
{
cBuilderKunder = new OleDbCommandBuilder(da1);
cBuilderFaktura = new OleDbCommandBuilder(da2);
da1.UpdateCommand = cBuilderKunder.GetUpdateCommand();
da2.UpdateCommand = cBuilderFaktura.GetUpdateCommand();
}
