Luze Geschrieben 23. September 2010 Geschrieben 23. September 2010 Hallo, ich bins mal wieder. Folgender Codeausschnitt liegt vor: Dim cmd As New SqlServerCe.SqlCeCommand Dim sqlc As String = "INSERT INTO tblAuftr_sync (FakturNr,KundenNummer,Kunde,ArtikelNr,AuspraegungsID,EAN,Bezeichnung,bestellteqm,imSystemErfasst ,Lieferwoche,Rollenbreite,Durchmesser,anzRollenPal,GewichtQm,BemerkungenzumAuftrag,Rohstoffeverfüg bar,gefertigt,technischeVoraussetzung,Auftragteilgefertigt,Auftragfertig,Auftragstorniert,Auftragausgelie fert,AuftragfuerVeredelung,fertigfuerVeredelung,Prioritaet,Bearb,Lagerplatz,Freigabe,Versandl,NurVeredel ung,AuftragMemo,Mandant,Mandantenbezeichnung,BelPosID,Preiseinheit,sync,sync_u) VALUES (@Fakturnummer,@Kunden_Nummer,@Kunde,@Artikel_Nr,@AuspraegungsID,@EAN,@Bezeichnung,@best ellte_qm,@erfasst,@Lieferwoche,@Rollenbreite,@Durchmesser,@anz_Rollen_Pall,@Gewicht_m_,@Bemerk ungen_zum_Auftrag,@Rohstoffe_verfuegbar,@gefertigt,@technische_Voraussetzung,@Auftrag_teilgefert igt,@Auftrag_fertig,@Auftrag_storniert,@Auftrag_ausgeliefert,@Auftrag_fuer_Veredelung,@fertig_fuer_V eredelung,@Prioritaet,@Bearb,@Lagerplatz,@Freigabe,@Versandl,@Nur_Veredelung,@AuftragMemo,@Ma ndant,@Mandantenbezeichnung,@BelPosID,@Preiseinheit,@sync,@sync_u);" With cmd With .Parameters .AddWithValue("@Fakturnummer", i.Faktur_Nr) .AddWithValue("@Kunden_Nummer", i.Kunden_Nummer) .AddWithValue("@Kunde", i.Kunde) .AddWithValue("@Artikel_Nr", i.Artikel_Nr) .AddWithValue("@AuspraegungsID", i.AuspraegungsID) .AddWithValue("@EAN", i.EAN) .AddWithValue("@Bezeichnung", i.Bezeichnung) .AddWithValue("@bestellte_qm", i.bestellte_qm) .AddWithValue("@erfasst", Format$(erfasst, "MM.dd.yyyy")) .AddWithValue("@Lieferwoche", i.Lieferwoche) .AddWithValue("@Rollenbreite", i.Rollenbreite) .AddWithValue("@Durchmesser", i.Durchmesser) .AddWithValue("@anz_Rollen_Pall", i.anz_Rollen_Pall) .AddWithValue("@Gewicht_m_", i.Gewicht_m_) .AddWithValue("@Bemerkungen_zum_Auftrag", i.Bemerkungen_zum_Auftrag) .AddWithValue("@Rohstoffe_verfuegbar", i.Rohstoffe_verfügbar) .AddWithValue("@gefertigt", i.gefertigt) .AddWithValue("@technische_Voraussetzung", i.technische_Voraussetzung) .AddWithValue("@Auftrag_teilgefertigt", i.Auftrag_teilgefertigt) .AddWithValue("@Auftrag_fertig", i.Auftrag_fertig) .AddWithValue("@Auftrag_storniert", i.Auftrag_storniert) .AddWithValue("@Auftrag_ausgeliefert", i.Auftrag_ausgeliefert) .AddWithValue("@Auftrag_fuer_Veredelung", i.Auftrag_für_Veredelung) .AddWithValue("@fertig_fuer_Veredelung", i.fertig_für_Veredelung) .AddWithValue("@Prioritaet", i.Priorität) .AddWithValue("@Bearb", i.Bearb) .AddWithValue("@Lagerplatz", i.Lagerplatz) .AddWithValue("@Freigabe", i.Freigabe) .AddWithValue("@Versandl", i.Versandl) .AddWithValue("@Nur_Veredelung", i.Nur_Veredelung) .AddWithValue("@AuftragMemo", i.AuftragMemo) .AddWithValue("@Mandant", i.Mandant) .AddWithValue("@Mandantenbezeichnung", i.Mandantenbezeichnung) .AddWithValue("@BelPosID", i.BelPosID) .AddWithValue("@Preiseinheit", i.Preiseinheit) .AddWithValue("@sync", i.sync) .AddWithValue("@sync_u", "O") End With End With conntransfer.ExecuteCommand(sqlc) Bei der Ausführung kommt es zu folgendem Fehler: "Parameter fehlt. [Parameter ordinal = 1]" Es scheint als wär ein Parameter zu wenig, dabei hab ich alles mehrmals durchgezählt, es kann allerdings auch sein, dass ich den Wald vor lauter Bäumen nicht sehe:p, vllt kann von euch jmd etwas erkennen. Bin für jede Hilfe dankbar.:bimei Zitieren
Mcolli Geschrieben 23. September 2010 Geschrieben 23. September 2010 Moin, ich kann Dir nur empfehlen die Enterprise Library von Microsoft für Datenbankzugriffe verwenden. Ich habe das schon öfter in diesem Forum erwähnt. Schau mal den Artikel für Dein Problem an. Evtl kann Dir das ja schon für Dein Problem helfen. Ich schreibe schon seit längerem ein Entlib Tutorial - hatte aber in letzter Zeit keine Zeit das fortzusetzen ... in der nächsten Woche sollte allerding für Datenbank zugriffe ein Tutorial hier entstehn. Zitieren
lbm1305 Geschrieben 23. September 2010 Geschrieben 23. September 2010 (bearbeitet) Moin, ich kann Dir nur empfehlen die Enterprise Library von Microsoft für Datenbankzugriffe verwenden. Ich würde Dir einen O/R Mapper empfehlen. :roll: Der Zugriff sollte dann komfortabler sein. Ansonsten findest Du hier vielleicht die Lösung: VB.net Daten EInfügen in SQL CE Der dritte Beitrag zeigt ein wenig Code. Normalerweise müssen die Parameter vorher definiert werden: SqlParameter, SqlCeParameter etc. Funktioniert denn das InsertCommand, wenn Du die Werte anstelle der Parameter schreibst? Bearbeitet 23. September 2010 von lbm1305 Zitieren
NerdonRails Geschrieben 24. September 2010 Geschrieben 24. September 2010 Ich würde Dir einen O/R Mapper empfehlen. :roll: Der Zugriff sollte dann komfortabler sein. Dem kann ich mich nur anschließen, diesem Kraut und Rüben aus irgendwelchen Strings wird damit effektiv ein Riegel vorgeschoben. Weitere Vorteile eines O/R-Mappers: - der Code wird besser lesbarer - der Code wird testbar (z.b. durch einen gemockten Context im EntityFramework) - der Code wird wartbarer - uvm. Bekannte Vertreter für .Net sind: NHibernate, ActiveRecord, Linq2SQL, EntityFramework Zitieren
Luze Geschrieben 24. September 2010 Autor Geschrieben 24. September 2010 Hi, also den O/R Mapper verwende ich schon länge und weiß ihn durchaus zus chätzen, nur gab es hierbei Probleme, die etwas seltsam waren. Naja, ich konnte das ganze jetzt mit einer Combolösung beheben, jedenfalls funktioniert das ganze Prozedere jetzt wie es soll. Den entscheidenen Anschubser hat mir lbm1305 mit dem Link gegeben. Danke euch allen drei Zitieren
lbm1305 Geschrieben 24. September 2010 Geschrieben 24. September 2010 Bekannte Vertreter für .Net sind: NHibernate, ActiveRecord, Linq2SQL, EntityFramework Ein sehr guter und freier O/R Mapper für MySql, SqlCE, Access findet man unter Free .NET O/R Mapper - Code Generator Invist Derzeit gibt es leider noch keine Version für das VS2010. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.