2017-07-25 1 views
1

C'est une application de formulaires Web et j'ai de la difficulté à trouver exactement ce qui ne va pas. J'essaie d'insérer des informations dans le tableau logins.Cette requête d'insertion dans webforms est une erreur et je ne sais pas pourquoi

Tout fonctionne à part quand j'ajoute [User] qui est le nom d'utilisateur de la personne connectée à l'époque. il y a une autre entrée pour le nom d'utilisateur mais cela fonctionne bien.

Image Of The Logins Table

Le code aspx.cs derrière:

protected void add_Click(object sender, EventArgs e)  
{ 
     string currentUser = User.Identity.Name; 

     int webid = Convert.ToInt32(ddlWebsite.SelectedItem.Value); 
     string username = username.Text; 
     string _email = email.Text; 
     string pass = password.Text; 
     string Ainfo = info.Text; 
     string loguser = User.Identity.Name; 

     //string connectionstring = "Data Source=(LocalDb)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebProg-20170720092452.mdf;Initial Catalog=aspnet-WebProg-20170720092452;Integrated Security=true"; 
     SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()); 

     string query = "Insert into Logins(WebsiteID, Username, Password, AdditionalInfo, User, Email) Values (@webid, @username, @pass, @Ainfo, @loguser, @_email)"; 

     SqlCommand insertQuery = new SqlCommand(query,connection); 

     insertQuery.Parameters.AddWithValue("@webid", webid); 
     insertQuery.Parameters.AddWithValue("@username", username); 
     insertQuery.Parameters.AddWithValue("@pass", pass); 
     insertQuery.Parameters.AddWithValue("@Ainfo", Ainfo); 
     insertQuery.Parameters.AddWithValue("@loguser", User.Identity.Name); 
     insertQuery.Parameters.AddWithValue("@_email", _email); 

     connection.Open(); 
     insertQuery.ExecuteNonQuery(); 
     connection.Close(); 
    } 

Le balisage ASPX:

Ajouter un Connexion

<div id="websiteDetails" class="col-md-4"> 

     <label id="Label1" for="websiteName"> 
      Website Name:    

      <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="SELECT [Id], [Name] FROM [WebsiteList]"></asp:SqlDataSource> 
      <asp:DropDownList ID="ddlWebsite" runat="server" DataSourceID="SqlDataSource1" DataTextField="Name" DataValueField="Id"></asp:DropDownList> 

      <asp:Button ID="Button1" runat="server" Text="AddAWebsite" /> 
     </label> 
     <label id="Label3" for="username"> 
      Username/Email: 
      <asp:TextBox ID="username" runat="server"></asp:TextBox> 
     </label> 
     <label id="Label4" for="password"> 
      Password: 
      <asp:TextBox ID="password" runat="server"></asp:TextBox> 
     </label> 
     <label id="Label6" for="email"> 
      Email Address: 
      <asp:TextBox ID="email" runat="server"></asp:TextBox> 
     </label> 
     <label id="Label5" for="info"> 
      Additional Info: 
      <asp:TextBox ID="info" runat="server"></asp:TextBox> 
     </label> 
    </div> 
    <asp:SqlDataSource ID="SqlDataSource2" runat="server"></asp:SqlDataSource> 
    <div id="loginDetails" class="col-md-4"> 
     <p>Website not showing up in the list? Add a Website to the list.</p> 
     <label id="Label7" for="websiteName"> 
      Website Name: 
      <asp:TextBox ID="Wname" runat="server"></asp:TextBox> 
     </label> 
     <label id="Label8" for="link"> 
      Website Address: 
      <asp:TextBox ID="link" runat="server"></asp:TextBox> 
     </label> 
    </div> 
    <asp:Button ID="AddWebsite" runat="server" Text="Add Website" OnClick="AddWebsite_Click" /> 



</div> 
<asp:Button ID="add" runat="server" Text="Add Login" class="btn btn-default" OnClick="add_Click" /> 

This is the error message that doesn't tell me much at all

+0

Quels sont les types de colonnes dans la base de données? –

+0

Quelles sont les valeurs des variables que vous ajoutez en tant que paramètres? –

+0

l'erreur est en fait exceptionnellement claire quant à ce qui est faux. Voir la réponse de Rahul .. – BugFinder

Répondre

4

Eh bien User est un mot réservé et c'est le problème ici, comme peut être vu dans votre déclaration INSERT. Il doit être échappé comme [User] si elle est SQL Server ou utiliser le style ANSI échapper en utilisant des guillemets doubles

Insert into Logins(WebsiteID, Username, Password, AdditionalInfo, [User], Email) 
+0

Oui c'était le problème merci beaucoup! – Seangol1

+0

@ Seangol1, puis envisager d'accepter la réponse en cliquant sur le bouton de contrôle – Rahul