Avatar billede speedpete Nybegynder
03. december 2008 - 12:28 Der er 8 kommentarer

System.Transactions i BLL, fortsættelse

"Handlingen er ikke gyldig på grund af transaktionens aktuelle tilstand."

Hvad betyder det? Det kommer i forbindelse med kaldet til Membership.CreateUser. Provideren er en custom-built MySQLprovider, som jeghar fundet på nettet.

using (TransactionScope scope = new TransactionScope())
              {                 
                  Membership.CreateUser("onsdagkl1223", "1234", "aasd@adfdf.dk");
                  DALstatic.Insert( "4", "lille");                 
                  DALstatic.Insert2( "4300", "Holbæk");                 
                  scope.Complete();                                  }
Avatar billede arne_v Ekspert
06. december 2008 - 19:29 #1
Du har kildeteksten til provideren ?

Bruger den eksplicit BeginTransaction og Commit ?

Hvis ja - så prøv og udkommenter dem.
Avatar billede speedpete Nybegynder
06. december 2008 - 23:11 #2
Det vil jeg prøve på mandag.

Det er denne provider:

http://www.codeproject.com/KB/webforms/MySQLsuite.aspx
Avatar billede speedpete Nybegynder
08. december 2008 - 20:00 #3
Næ, kun i Delete-metoden, og den bruger jeg ikke i eksemplet.
Avatar billede arne_v Ekspert
09. december 2008 - 04:16 #4
Hvilken linie i den provider giver exception ?

Hvad er de relevante database handlinger i forbindelse med at det går galt ?
Avatar billede speedpete Nybegynder
09. december 2008 - 09:02 #5
Ok, det bliver så heller ikke nemmere af at jeg linker forkert. Jeg kan se at jeg har skiftet membershipprovideren til denne:
http://www.codeproject.com/KB/database/mysqlmembershipprovider.aspx
Og rent faktisk kan jeg ikke reproducere fejlen jeg nævnte først. Der sker bare det, at CreateUser ikke ruller tilbage hvis en af de følgende kald fejler.
Avatar billede arne_v Ekspert
10. december 2008 - 04:24 #6
Og den starter ikke sit eget TransactionScope med option New ?
Avatar billede arne_v Ekspert
10. december 2008 - 04:27 #7
Hm. Det ser det ikke ud til.

Bruger du samme connection string for Membership og DALstatic ?

Hvis nej - kan du prøve med samme ?
Avatar billede speedpete Nybegynder
10. december 2008 - 14:53 #8
Her er de to metoder, inkl connectionstring, fra DALstatic:

public static class DALstatic
    {
        // test
        public static void Insert(string nr, string nvn)
        {
            string myConnectionString = "Database=vaerk;Data Source=localhost;User Id=xxx;Password=xxx";
            MySqlConnection myConnection = new MySqlConnection(myConnectionString);
            string myInsertQuery = "INSERT INTO maalertype values(@nr,@nvn)";
            MySqlCommand myCommand = new MySqlCommand(myInsertQuery);
            myCommand.Parameters.AddWithValue("@nr", nr);
            myCommand.Parameters.AddWithValue("@nvn", nvn);
            myCommand.Connection = myConnection;
            myConnection.Open();
            myCommand.ExecuteNonQuery();
            myCommand.Connection.Close();
        }
        public static void Insert2(string nr, string nvn)
        {
            string myConnectionString = "Database=vaerk;Data Source=localhost;User Id=xxx;Password=xxx";
            MySqlConnection myConnection = new MySqlConnection(myConnectionString);
            string myInsertQuery = "INSERT INTO postnummer values(@nr,@nvn)";
            MySqlCommand myCommand = new MySqlCommand(myInsertQuery);
            myCommand.Parameters.AddWithValue("@nr", nr);
            myCommand.Parameters.AddWithValue("@nvn", nvn);
            myCommand.Connection = myConnection;
            myConnection.Open();
            myCommand.ExecuteNonQuery();
            myCommand.Connection.Close();
        }
        // end test


.. og her et uddrag af web.config, hvorfra Membership henter connectionstring. Såvidt jeg kan se, har farven den samme lyd.

<connectionStrings>
        <add name="ProvidersConnString" connectionString="Database=vaerk;Data Source=localhost;User Id=xxx;Password=xxx"/>
    </connectionStrings>

MySql.Data.dll har Assembly Version 5.2.5.0,
og min SQLDB siger 5.0.45-community-nt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Udviklings- og Forenklingsstyrelsen

Erfarne IT-udviklere til fremtidens skattevæsen

Cognizant Technology Solutions Denmark ApS

Test Architect - Projects

Politiets Efterretningstjeneste

Centerchef til Center for Support og Proces i PET

Metroselskabet og Hovedstadens Letbane

Cyber Security Konsulent