2017-03-22 5 views
-2

Also mein Problem ist, bekomme ich eine Fehlermeldung beim Schreiben dieser Fachabfrage in meinem SQL-Server. Ich bin mit Visual Studie 2017. Fehlermeldung:Einfügen von Zeilen in SQL mit C#

System.ArgumentException: ‚Es gibt keine Zuordnung Objekttyp System.Web.UI.HtmlControls.HtmlInputGenericControl einem bekannten nativen Typ eines Managed Service Provider.‘

Dieses happends auf meinem cmd.ExecuteNonQuery(); aber ich habe Scalar und Reader versucht. Alle geben einen Fehler.

Ich hoffe wirklich, jemand hat eine Lösung, es ist für ein College-Projekt.

protected void btnRegister_Click(object sender, EventArgs e) 
{ 
    string connString = WebConfigurationManager.ConnectionStrings["csPAD"].ConnectionString; 

    SqlConnection myConnection = new SqlConnection(connString); 
    if (Page.IsValid) 
    { 
     string Study = rbStudy.SelectedValue; 

     string sqlQuery = "INSERT INTO Registratie ([Firstname], [middlename], [Lastname], [Dateofbirth], [Study], [Email]) VALUES (@Firstname,@middlename,@Lastname,@Dateofbirth,@Study,@Email)"; 
     SqlCommand cmd = new SqlCommand(sqlQuery, myConnection) 
     { 

      cmd.Parameters.AddWithValue("@Firstname", txtFirstname.Text); 
      if (txtmiddlename.Text == "") 
      { 
       cmd.Parameters.AddWithValue("@middlename", ""); 
      } 
      else 
      { 
       cmd.Parameters.AddWithValue("@middlename", txtmiddlename.Text); 
      } 
      cmd.Parameters.AddWithValue("@Lastname", txtLastname.Text); 
      cmd.Parameters.AddWithValue("@Dateofbirth", Dateofbirth); 
      cmd.Parameters.AddWithValue("@Study", Study); 
      if (txtEmail.Text == "") 
      { 
       cmd.Parameters.AddWithValue("@Email", ""); 
      } 
      else 
      { 
       cmd.Parameters.AddWithValue("@Email", txtEmail.Text); 
      }   
      myConnection.Open(); 
      int rows = cmd.ExecuteNonQuery(); 
      MessageBox.Show(rows + " rows affected!"); 
      myConnection.Close();        
     } 
    } 
    else 
    { 
     lblNotification.Text = "Everything is required."; 
    } 
} 
+4

Was ist das Dateofbirth-Objekt? – David

+1

Randnotiz: Die if-Anweisungen für 'mittelname' und' Email' sind sinnlos – TheLethalCoder

+0

Hat 'connString' den richtigen Wert? – TheLethalCoder

Antwort

1

unter Änderungen an Ihrer Asp.net und C# -Code

ersetzen

<input type="date" ID="DateofBirth" runat="server" min="01-01-1990" max="01-01-2020"> 

MIT

<asp:TextBox ID="DateofBirth" runat="server"></ asp:TextBox> 

UND

cmd.Parameters.AddWithValue("@Dateofbirth", Dateofbirth.Text); 
-2

Meine Vermutung ist, dass Sie die folgende Zeile beheben müssen (dateOfBirth scheint ein Steuer Name zu sein?):

cmd.Parameters.AddWithValue("@Dateofbirth", Dateofbirth); 
+2

'Study' ist vom Typ' string', wie im Code zu sehen ist. –

+0

Entschuldigung, mein Geburtsdatum (jetzt gerade behoben) –

0

@ David Der folgende Code in meinem HTML-Seite ist:

<td><asp:Label ID="lblDateofBirth" runat="server" Text="DateofBirth:"></asp:Label></td> 
      <td><input type="date" ID="DateofBirth" runat="server" min="01-01-1990" max="01-01-2020"></td> 
      <td><asp:RequiredFieldValidator ID="rfvDateofBirth" runat="server" ControlToValidate="DateofBirth" ErrorMessage="Dit veld is vereist!" ForeColor="Red" ></asp:RequiredFieldValidator></td> 

Und das ist in meinem Web.config konfiguriert:

<connectionStrings> 
    <add name="csPAD" connectionString="Data Source=MARCO-LAPTOP;Initial Catalog=ProjectPAD;Integrated Security=True"/> 
    </connectionStrings> 

Für die, die für die vollständige Code gefragt:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.Configuration; 
using System.Data.SqlClient; 
using System.Configuration; 
using System.Windows.Forms; 


public partial class Register : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 


    protected void btnRegister_Click(object sender, EventArgs e) 
     { 
      string connString = WebConfigurationManager.ConnectionStrings["csPAD"].ConnectionString; 

      SqlConnection myConnection = new SqlConnection(connString); 
      if (Page.IsValid) 
      { 
       string Study = rbStudy.SelectedValue; 

       string sqlQuery = "INSERT INTO Registratie ([Firstname], [middlename], [Lastname], [Dateofbirth], [Study], [Email]) VALUES (@Firstname,@middlename,@Lastname,@Dateofbirth,@Study,@Email)"; 
       SqlCommand cmd = new SqlCommand(sqlQuery, myConnection) 
       { 

        cmd.Parameters.AddWithValue("@Firstname", txtFirstname.Text); 
        if (txtmiddlename.Text == "") 
        { 
         cmd.Parameters.AddWithValue("@middlename", ""); 
        } 
        else 
        { 
         cmd.Parameters.AddWithValue("@middlename", txtmiddlename.Text); 
        } 
        cmd.Parameters.AddWithValue("@Lastname", txtLastname.Text); 
        cmd.Parameters.AddWithValue("@Dateofbirth", Dateofbirth); 
        cmd.Parameters.AddWithValue("@Study", Study); 
        if (txtEmail.Text == "") 
        { 
         cmd.Parameters.AddWithValue("@Email", ""); 
        } 
        else 
        { 
         cmd.Parameters.AddWithValue("@Email", txtEmail.Text); 
        }   
        myConnection.Open(); 
        int rows = cmd.ExecuteNonQuery(); 
        MessageBox.Show(rows + " rows affected!"); 
        myConnection.Close();        
       } 
      } 
      else 
      { 
       lblNotification.Text = "Everything is required."; 
      } 
     } 

} 
0

Können Sie es so versuchen?

con.Open(); 
SqlCommand cmd = new SqlCommand(@"insert into tbl_insert values(@name,@email,@add)", con); 
cmd.Parameters.AddWithValue("@name", txtname.Text); 
cmd.Parameters.AddWithValue("@email", txtemail.Text); 
cmd.Parameters.AddWithValue("@add", txtadd.Text); 
cmd.ExecuteNonQuery(); 
con.Close(); 
Verwandte Themen