Avatar billede 2cool Nybegynder
14. februar 2002 - 12:38 Der er 1 løsning

ASP.NET, C#, MSSQL Stored procedure MissingMethodException

Jeg har en form på en aspx-side hvor jeg indtaster oplysninger om en kunde. Af data skaber jeg et objekt, som jeg vil skrive til MSSQL-database vha. en stored procedure. Jeg bruger C#.

Jeg kan læse data fra databasen og vise det i browseren, så serveren kører.
Jeg kan også skabe objektet, og vise attributterne i browseren, så get/set-metoder virker.

***********Fejlmeddelelse******************

Opret kundeSystem.MissingMethodException: Method not found: Void System.Threading.WaitCallback..ctor(System.Object, UIntPtr). at System.Data.SqlClient.SqlConnection.Open() at intraNET.Kunde.skriv() at ASP.opretkunde_aspx.gemKunde(Object sender, EventArgs e) in C:\www\dotnet\opretkunde.aspx:line 18

Her er min aspx-side og min kundeklasse:


*********opretkunde.aspx****************

<%@ Page language="C#" Debug="true"%>
<%@ Import namespace="intraNET" %>
<%@ Import namespace="System" %>
<%@ Import namespace="System.Web" %>
<%@ Import namespace="System.Web.UI" %>
<%@ Import namespace="System.Web.UI.WebControls" %>

<script language="C#" runat="server">
    public void gemKunde(Object sender, EventArgs e) {
        if (Page.IsValid) {
          Kunde kunde = new Kunde();
          kunde.Navn = txtNavn.Text;
          kunde.Adresse = txtAdresse.Text;
          kunde.Postnr = txtPostnr.Text;
          kunde.Telefon = txtTelefon.Text;
          kunde.Email = txtEmail.Text;
          try {
            kunde.skriv();
          }
          catch (Exception e1) {
            lblError.Text = e1.ToString();
          }
        }
    }
</script>
<html>
<head>
<title>ASP.NET eksperimenter</title>
<!--#include file="style.css"-->
</head>
<body>
<form action="opretkunde.aspx" method="post" runat="server">
<table cellpadding="0" cellspacing="0" border="0">
  <tr>
    <td colspan="5" class="overskrift">Opret kunde<asp:label id="lblError" text="" runat="server" /></td>
  </tr>
  <tr>
    <td></td><td>&nbsp;</td><td></td><td>&nbsp;</td><td></td>
  </tr>
  <tr>
    <td>Navn:</td><td>&nbsp;</td><td><asp:textbox id="txtNavn" runat="server"/> *</td><td>&nbsp;</td><td><asp:RequiredFieldValidator id="valNavnRequired" runat="server" ControlToValidate="txtNavn" ErrorMessage="Du skal udfylde navn!" Display="dynamic"/></td>
  </tr>
  <tr>
    <td>Adresse:</td><td>&nbsp;</td><td><asp:textbox id="txtAdresse" runat="server"/></td><td>&nbsp;</td><td></td>
  </tr>
  <tr>
    <td>Postnr.:</td><td>&nbsp;</td><td><asp:textbox id="txtPostnr" runat="server"/> *</td><td>&nbsp;</td><td><asp:RequiredFieldValidator id="valPostnrRequired" runat="server" ControlToValidate="txtPostnr" ErrorMessage="Du skal udfylde postnr!" Display="dynamic"/></td>
  </tr>
  <tr>
    <td>Telefon:</td><td>&nbsp;</td><td><asp:textbox id="txtTelefon" runat="server"/></td><td>&nbsp;</td><td></td>
  </tr>
  <tr>
    <td>E-mail:</td><td>&nbsp;</td><td><asp:textbox id="txtEmail" runat="server"/> *</td><td>&nbsp;</td><td><asp:RequiredFieldValidator id="valEmailRequired" runat="server" ControlToValidate="txtEmail" ErrorMessage="Du skal udfylde e-mail!" Display="dynamic"/><asp:RegularExpressionValidator id="valEmailRegEx" runat="server" ControlToValidate="txtEmail" ValidationExpression=".*@.*\..*" ErrorMessage="Den indtastede e-mail er ikke gyldig!" display="dynamic"/></td>
  </tr>
  <tr>
    <td></td><td>&nbsp;</td><td></td><td>&nbsp;</td><td></td>
  </tr>
  <tr>
    <td colspan="5"><asp:button id="btnGem" Text="Gem" runat="server" onClick="gemKunde"/></td>
  </tr>
</table>
</form>
</body>
</html>



************kunde.cs***********

using System;
using System.Data;
using System.Data.SqlClient;

namespace intraNET {
    public class Kunde {
   
      private int id;
      private string navn;
      private string adresse;
      private string postnr;
      private string telefon;
      private string email;
      private SqlConnection myConnection;
     
        public Kunde() {
          this.navn      = "";
          this.adresse  = "";
          this.postnr    = "";         
          this.telefon  = "";
          this.email    = "";
        }
       
        public int Id {
          get {
              return this.id;
          }
          set {
              this.id = value;
          }
        }
       
        public string Navn {
        get {
            return this.navn;
        }
        set {
            this.navn = value;
        }         
        }
       
      public string Adresse {
        get {
            return this.adresse;
        }
        set {
            this.adresse = value;
        }                 
      }
     
      public string Postnr {
        get {
            return this.postnr;
        }
        set {
            this.postnr = value;
        }                 
      }
     
      public string Telefon {
        get {
            return this.telefon;
        }
        set {
            this.telefon = value;
        }                 
      }
     
      public string Email {
        get {
            return this.email;
        }
        set {
            this.email = value;
        }                 
      }
     
      public void openDatabase() {
        myConnection = new SqlConnection("server=127.0.0.1;database=intranet;uid=sa;pwd=;");
        myConnection.Open();
      }
     
      public void closeDatabase(){
        myConnection.Close();
      }
     
      public void skriv() {
        this.openDatabase();       

        SqlCommand myCommand;
        myCommand = new SqlCommand("sp_kunde_gem",myConnection);
        myCommand.CommandType = CommandType.StoredProcedure;
       
        myCommand.Parameters.Add(new SqlParameter("@navn", SqlDbType.NVarChar, 50));
        myCommand.Parameters["@navn"].Value = this.Navn;
       
        myCommand.Parameters.Add(new SqlParameter("@adresse", SqlDbType.NVarChar, 50));
        myCommand.Parameters["@adresse"].Value = this.Adresse;
       
        myCommand.Parameters.Add(new SqlParameter("@postnr", SqlDbType.NVarChar, 4));
        myCommand.Parameters["@postnr"].Value = this.Postnr;
       
        myCommand.Parameters.Add(new SqlParameter("@telefon", SqlDbType.NVarChar, 8));
        myCommand.Parameters["@telefon"].Value = this.Telefon;
       
        myCommand.Parameters.Add(new SqlParameter("@email", SqlDbType.NVarChar, 100));
        myCommand.Parameters["@email"].Value = this.Email;

        myCommand.ExecuteNonQuery();
       
        this.closeDatabase();
      }
    }
}

Avatar billede 2cool Nybegynder
19. februar 2002 - 19:00 #1
Jeg fandt selv ud af det...

Jeg havde installeret final release af .NET frameworket, og derefter Beta 2 af Visual Studio .NET - dette gav åbenbart nogle alvorlige problemer, og afinstallationen af final release, og derpå geninstallation af Beta 2 frameworket løste problemet...
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