网络表单中的此插入查询引发错误,我不知道为啥

Posted

技术标签:

【中文标题】网络表单中的此插入查询引发错误,我不知道为啥【英文标题】:This insert query in webforms is throwing an error and I'm not sure why网络表单中的此插入查询引发错误,我不知道为什么 【发布时间】:2017-12-31 06:00:13 【问题描述】:

这是一个 Web 表单应用程序,我很难找出它到底出了什么问题。

我正在尝试将信息插入到logins 表中。

除了我添加 [User] 这是当时登录的人的用户名之外,一切正常。用户名还有另一个条目,但工作正常。

Image Of The Logins Table

背后的 Aspx.cs 代码:

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();
    

ASPX 标记:

添加登录名

    <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

【问题讨论】:

数据库中的列有哪些类型? 作为参数添加的变量的值是多少? 这个错误实际上是非常清楚出了什么问题。见拉胡尔的回答.. 【参考方案1】:

User 是一个保留字,这就是问题所在,您可以在您发布的INSERT 声明中看到这一点。如果是 SQL Server,则需要像 [User] 一样进行转义,或者使用双引号 "User" 使用 ANSI 样式转义

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

【讨论】:

@Seangol1,然后考虑通过单击检查按钮接受答案

以上是关于网络表单中的此插入查询引发错误,我不知道为啥的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Django 表单没有引发验证错误?

表单字段被拒绝,我不知道为啥

了解 Visual Studio 2010 中的此错误 (LNK 2019)

如何解决 WebGL Unity 游戏中的此错误?

PUT 方法在表单中不起作用会引发错误

如何解决 Access 中的此查询错误?