stored procedure.

Pagina: 1
Acties:
  • 280 views

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Voor een programma op mijn stage wil ik een functionaliteit inbouwen waarmee je de de database kan leegmaken. Niet alles maar dat heb ik geregeld in mijn stored procedure.

dit is de code die ik nu heb:

private void btnVerwijderAllegegevens_Click(object sender, EventArgs e)
{
frmPassword frmpass = new frmPassword("garage1");
frmpass.ShowDialog();
if (frmpass.DialogResult == DialogResult.OK)
{
txtBedrijfsnaam.ReadOnly = false;
}

string tekst = "Indien u op <Ja> klikt zullen alle relaties, voertuigen en bijbehorende historie worden definitief verwijderd! Weet u zeker dat u dit wilt doen?";
string titel = "Weet u het zeker?";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
DialogResult result;

result = MessageBox.Show(this, tekst, titel, buttons, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
SqlCommand cmd = cnn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "ResetDataKlant";

cnn.Open();
cmd.e
MessageBox.Show("De gegevens zijn verwijderd");
cnn.Close();


}
if (result == DialogResult.No)
{
MessageBox.Show("U heeft de gegevens NIET verwijderd");

}

Mijn probleem zit hem in:

SqlCommand cmd = cnn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "ResetDataKlant";

cnn.Open();
cmd.???????????
MessageBox.Show("De gegevens zijn verwijderd");
cnn.Close();

Hiermee wil ik dus mijn Stored Procedure aanroepen. Wanneer ik een SP heb waaraan ik parameters meegeeft dat gebruik ik cmd.ExecuteNonQuery.
Alleen nu heb ik een SP zonder parameters en loopt hij hier op vast.

Mijn foutmelding is:
The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.

als ik hierop google kom ik iets tegen over Rollovers en dat ik het moet opvangen met een try and catch.
maar hier wordt ik niet veel wijzer van.
Weet iemand hoe ik het kan oplossen.

Acties:
  • 0 Henk 'm!

Verwijderd

Je doet een COMMIT TRANSACTION zonder dat je een BEGIN TRANSACTION hebt.
Wat is je SP?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ResetDataKlant] AS

DELETE FROM dbo.tblAdres WHERE relatieID <> 0;

DELETE FROM dbo.tblAfspraak;

DELETE FROM dbo.tblAPK;

DELETE FROM dbo.tblArtikel;

DELETE FROM dbo.tblAPK;

DELETE FROM dbo.tblBTWCode;

DELETE FROM dbo.tblContactpersoon;

DELETE FROM dbo.tblFactuur;

DELETE FROM dbo.tblfactuurBetaald;

DELETE FROM dbo.tblFactuurRegels;

DELETE FROM dbo.tblFormatScreens;

DELETE FROM dbo.tblNummering;

DELETE FROM dbo.tblPersoneel;

DELETE FROM dbo.tblRelatie where relatieID <> 0;

DELETE FROM dbo.tblVoertuig;

DELETE FROM dbo.tblVoertuigRelatie;

DELETE FROM dbo.tblWerkOrder;

DELETE FROM dbo.tblWerkOrderRegels;

DELETE FROM dbo.tblImage;

DELETE FROM dbo.tblExtraData;

INSERT INTO dbo.tblNummering (Type,Nummer,Prefix,Stap,Grootte,Beginper) VALUES(1,0,2009,1,4,'1/1/2009');

INSERT INTO dbo.tblNummering (Type,Nummer,Prefix,Stap,Grootte,Beginper) VALUES(2,0,2009,1,4,'1/1/2009');

INSERT INTO dbo.tblBTWCode (BTWCOde,BTWPerc,Omschrijving,StartDat) VALUES('00',0,'Nul','1/1/2009');
INSERT INTO dbo.tblBTWCode (BTWCOde,BTWPerc,Omschrijving,StartDat) VALUES('06',0.06,'Laag','1/1/2009');
INSERT INTO dbo.tblBTWCode (BTWCOde,BTWPerc,Omschrijving,StartDat,Standaard) VALUES('19',0.19,'Hoog','1/1/2009',1);

INSERT INTO dbo.tblPersoneel (ID,Naam,Achternaam,Initialen,InDienst) VALUES(99,'DEF','DEF','DEF','1/1/2009');

Commit;


Ik zie onderin een Commit staan. Moet ik dan bovenin ergens een Begin aangeven??

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Verwijderd schreef op vrijdag 05 juni 2009 @ 13:38:
Ik zie onderin een Commit staan. Moet ik dan bovenin ergens een Begin aangeven??
Lees in de documentatie van je databasepakket even in over transacties, dan wordt het je allemaal heel snel duidelijk.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb nu onderstaande toegevoegd.
BEGIN
BEGIN TRANSACTION CONVERSION

COMMIT TRANSACTION CONVERSION

Nu werkt het. Vond het als zo vaag want op google kwamen allemaal van die zwaar ingewikkelde oplossing.

in ieder geval voor jullie reacties.

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Je moet bij een foutmelding ook niet gelijk googlen, je moet eerst ervoor zorgen dat je weet waarmee je bezig bent :)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Sorry, maar ik moet de mensen hier gelijk geven. Die foutmelding is duidelijk, en die commit is er niet vanzelf gekomen. Als je commit weet te gebruiken, dan moet je ook weten hoe je überhaupt een transactie start en bovendien: waarom. Mede gezien je eerdere topic waarin je een gastgebruiker volledige rechten gaf over je database denk ik dat jij je beter eens heel snel in kan gaan lezen in wat je eigenlijk aan het doen bent, want als dit ook maar een heel klein beetje serieus gebruikt moet gaan worden, dan voorzie ik op deze manier problemen. ;)

Dit topic gaat in elk geval op slot.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.