Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Sharepoint - Probleme mit asp querystringparameter - updatecommand

Frage Entwicklung VB for Applications

Mitglied: Kitana

Kitana (Level 1) - Jetzt verbinden

04.02.2009, aktualisiert 10:12 Uhr, 5185 Aufrufe, 1 Kommentar

hallo,
ich arbeite seit einiger Zeit mit dem Sharepoint Designer 2007.
Der betreffender Sharepoint Server liegt auf einem w2k3.

Kurz zum Umfeld:
ich entwickel mit sharepoint eine Art Datenbank für Verträge, welche die Anbindung an eine SQL Datenquelle benötigt zum Generieren neuer Vertragsnummern und Änderungsnummern. Das heißt jedes Mal wenn man ein NewForm aufruft (Verträge bzw Änderungen) wird die Tabelle in der Datenbank geupdatet. Da bei jedem Vertrag die Änderungsnummer bei 1 beginnen soll, ergibt sich daraus eine Tabelle in der SQL Datenbank, die die Felder Vertragsnummer und Änderungsnummer beinhaltet. Bei Anlegen eines neuen Vertrages wird in der Datenbank ein neuer Datensatz mit "letzte Vertragsnummer + 1" und Änderungsnummer 0 angelegt. Bei einer neuen Änderung soll dann die Änderungsnummer um 1 hochgezählt werden. Soweit zur Teorie der Datenbank - geht nur nicht :D

Praktisch funktioniert das Hochzählen der Änderungsnummer nicht so ganz wie gewünscht. Das heißt er führt den Updatecommand im SQL Query einmal bei Aufruf der Seite durch, was er auch soll und dann auch noch ein zweites Mal wenn man auf den Speichern Button klickt.
ich habe auf der Seite zwei DataFormWebparts, welche über eine Webpartverbindung verbunden sind. Der obere Webpart hat eine SPDatasource. Der untere eine SQLDatesource. Der untere Webpart ist im endeffekt dazu da die Änderungsnummer aus der SQL datenbank an den oberen Webpart zu übergeben, damit diese über das dortige Formular gespeichert werden kann.

Diesen schematischen Aufbau der beiden Webparts habe ich auch auf den Seiten für einen Neuen Vertrag und für einen neuen Geschäftspartner. Dort funktioniert das Hochzählen der jeweiligen (Vertrags- bzw. Partner-)Nummer ohne probleme. wenn ich ein neues Formular aufrufe, Daten eingebe, speicher und dann wieder ein neues Formular aufrufe, habe ich die nächst höhere Nummer.
Der Unterschied im Formular für eine neue Änderung zu den beiden Formularen besteht nun effektiv darin wie das SQL Query aufgebaut ist und dort liegt auch der "Fehler".

Das SQL Query für eine neue Vertragsnummer sieht wie folgt aus:

*<DataSources>
<asp:SqlDataSource id="..." runat="server" ... ProviderName="System.Data.SqlClient" ConnectionString="..." SelectCommand="DECLARE @Vertrag AS SMALLINT; SELECT @Vertrag=Max(Vertragsnummer)+1 FROM [Vertrag]; INSERT INTO [Vertrag] VALUES (@Vertrag,0); SELECT Max(Vertragsnummer) AS Vertragsnummer FROM [vertrag]"/>
</DataSources>*

Das SQL Query für einen neuen Partner sieht wie folgt aus:

<DataSources>
<asp:SqlDataSource id="..." runat="server" ... ProviderName="System.Data.SqlClient" ConnectionString="..." SelectCommand="UPDATE [Geschaeftspartner] SET Partnernummer = Partnernummer + 1; SELECT * FROM [Geschaeftspartner] "/>
</DataSources>

So und das Ganze für die Änderung ist ein wenig umfangreicher:

<DataSources>
<asp:SqlDataSource id="..." runat="server"... ProviderName="System.Data.SqlClient" ConnectionString="..." SelectCommand=" UPDATE [Vertrag] SET Aenderungsnummer = Aenderungsnummer + 1 WHERE Vertragsnummer = @Venummer; SELECT * FROM [Vertrag] WHERE Vertragsnummer = @Venummer"><SelectParameters><asp:querystringparameter QueryStringField="Vnummer" DefaultValue="1000" Name="Venummer" /></SelectParameters>
</asp:SqlDataSource>
</DataSources>

Das einzige, was zu den beiden anderen anders ist, ist dass ich hier unbedingt SelectParameters benötige. Der querystringparameter holt sich die Vertragsnummer aus der Url und übergibt diese an den SelectCommand.
Das Witzige an der Sache ist nun, wenn man das so ausführt, wird wie am Anfang beschrieben der SelectCommand zweimal ausgeführt und somit auch das UPDATE.
Sobald ich der Vertragsnummer einen festen Wert zuweise und den SelectParameter rausnehme, funktioniert das auch tadelos.
Übrigens muss im SelectCommand der parameter @Venummer noch nicht einmal auftauchen. Es reicht schon aus, dass die zeile:
<SelectParameters><asp:querystringparameter QueryStringField="Vnummer" DefaultValue="1000" Name="Venummer" /></SelectParameters>
im Code present ist, ohne irgendwo Anwendung zu finden, dass er zweimal ein Update macht ...

So und nun die Frage:
Was mach ich falsch, ist das ein blöder Bug, kennt das jemand? :D
Mitglied: Kitana
06.02.2009 um 09:09 Uhr
Lösung gefunden aber aufgrund von Unprofessionalität (auf deutsch fusch) nicht öffentlich tragbar *g*
Eins sei gesagt: Ich hab das mit dem doppelt Ausführen und somit um +2 hochzählen der Nummer nicht gelöst, sondern umgangen.

Fakt sei, dass der WSS irgendwie meint das SQL query zweimal ausführen zu müssen nur aufgrund der Tatsache, dass ein oder mehr Parameter in der DataSource definiert ist/sind.

Vielleicht stößt jemand in Zukunft auf das gleiche Problem und weiß eine Lösung ....
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
SharePoint 2013 Sync Probleme
Frage von VSimonMicrosoft Office

Hallo, wir sind eine kleine Firma die seit kurzem SharePoint 2013 (die Standard Office Version) verwendet. Nun haben wir ...

Microsoft
Sharepoint 2013 mit Office 2007 Probleme
Frage von LukihoferMicrosoft

Hallo Zusammen ! Ich hab das Problem das wir in der Firma Office 2007 und Sharepoint 2013 im Einsatz ...

Webentwicklung
ASP MVC auf IIS 8.5
Frage von hpbrunsWebentwicklung3 Kommentare

Hallo liebe Gemeinde Ich bin schier am Verzweifeln. Seit zwei Wochen doktor ich an einem Problem rum und krieg's ...

Webentwicklung
Type.mismatch nach umstellung auf einem anderssprachigen Server (ASP)
Frage von m.beckerWebentwicklung

Wir haben eine Intranetanwendung die nach einem Serverwechsel auf einen englischen Server 2008R2 den Fehler 80020005 Die Gebietsschema-ID auf ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 16 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 19 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...