'has' 附近的语法不正确

Incorrect syntax near 'has'

我正在尝试使用 asp.net 创建 Web 表单,但效果不佳,希望有人能帮助我。
如果用户在按钮而不是开始时输入,我怎么才能显示验证?
我希望用户仅在出现问题或不正确时才看到评论。
另外,我点击按钮后出现了他的错误,你知道为什么吗?

Exception Details: System.Data.SqlClient.SqlException: Incorrect syntax near 'has'.

以下是部分截图: The validation Exception Details: System.Data.SqlClient.SqlException: Incorrect syntax near 'has'. Message after click at the button

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

namespace RegistrationForm1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        SqlConnection con = new SqlConnection(@"Data Source=DESKTOP-20J5J59; Integrated Security=True");
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            con.Open();
            SqlCommand cmd = con.CreateCommand();
            cmd.Parameters.AddWithValue("@TTitle", TxtTitle.Text);
            cmd.Parameters.AddWithValue("@TName", TxtName.Text);
            cmd.Parameters.AddWithValue("@TID", TxtID.Text);
            cmd.Parameters.AddWithValue("@TEmail", TxtEmail.Text);
            cmd.Parameters.AddWithValue("@TMobile", TxtMobile.Text);
            cmd.Parameters.AddWithValue("@LMajor", LstMajor.SelectedItem.ToString()););
            cmd.Parameters.AddWithValue("@TNote", TxtNote.Text);
            cmd.CommandText = "Your request has been submitted successfully";
            cmd.ExecuteNonQuery();
            con.Close();
           
        }
    }
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="RegistrationForm1.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .auto-style1 {
            height: 247px;
            width: 628px;
        }
        .auto-style3 {
            height: 24px;
        }
        .auto-style4 {
            height: 24px;
            width: 86px;
        }
        .auto-style5 {
            width: 86px;
        }
        .auto-style6 {
            width: 86px;
            height: 30px;
        }
        .auto-style7 {
            height: 30px;
        }
        .auto-style8 {
            color: #FF0000;
        }
        .auto-style9 {
            width: 86px;
            height: 28px;
        }
        .auto-style10 {
            height: 28px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table align="center" class="auto-style1">
                <caption>Registration Form</caption>
                <tr>
                    <td class="auto-style4">Title: </td>
                    <td class="auto-style3">
                        <asp:TextBox ID="TxtTitle" runat="server" placeholder="Title" Width="210px"></asp:TextBox><span class="auto-style8">Enter a title.</span></td>
                </tr>

                <tr>
                    <td class="auto-style6">Name:</td>
                    <td class="auto-style7">
                        <asp:TextBox ID="TxtName" runat="server" placeholder="Full name" Width="210px"></asp:TextBox><span class="auto-style8">Enter full name.</span></td>
                </tr>

                <tr>
                    <td class="auto-style9">ID:</td>
                    <td class="auto-style10">
                        <asp:TextBox ID="TxtID" runat="server" placeholder="201600000" Width="208px" TextMode="Number"></asp:TextBox><span class="auto-style8">Enter ID. </span>
                        <asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ErrorMessage="RegularExpressionValidator" ControlToValidate="TxtID" ForeColor="Red" ValidationExpression="\d(9)">Invalid ID</asp:RegularExpressionValidator>
                    </td>
                </tr>

                <tr>
                    <td class="auto-style5">E-mail:</td>
                    <td>
                        <asp:TextBox ID="TxtEmail" runat="server" placeholder="name@example.com" Width="209px" TextMode="Email"></asp:TextBox><span class="auto-style8">Enter E-mail. </span>
                        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TxtEmail" ErrorMessage="RegularExpressionValidator" ForeColor="Red" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">Invalid E-mail</asp:RegularExpressionValidator>
                    </td>
                </tr>

                <tr>
                    <td class="auto-style5">Mobile No:</td>
                    <td>
                        <asp:TextBox ID="TxtMobile" runat="server" placeholder="966500000000" Width="210px" TextMode="Number"></asp:TextBox><span class="auto-style8">Enter mobile No. </span>
                        <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="TxtMobile" ErrorMessage="RegularExpressionValidator" ForeColor="Red" ValidationExpression="\d(10)">Invalid Mobile Number</asp:RegularExpressionValidator>
                    </td>
                </tr>

                <tr>
                    <td class="auto-style5">Major:</td>
                    <td>
                        <asp:DropDownList ID="LstMajor" runat="server" Height="17px" Width="218px">
                            <asp:ListItem>Select Option</asp:ListItem>
                            <asp:ListItem>Accounting</asp:ListItem>
                            <asp:ListItem>Architecture</asp:ListItem>
                            <asp:ListItem>Business Administration</asp:ListItem>
                            <asp:ListItem>Computer Science</asp:ListItem>
                            <asp:ListItem>Computer Engineering</asp:ListItem>
                            <asp:ListItem>Civil Engineering</asp:ListItem>
                            <asp:ListItem>Electrical Engineering</asp:ListItem>
                            <asp:ListItem>Finance</asp:ListItem>
                            <asp:ListItem>Graphic Design</asp:ListItem>
                            <asp:ListItem>Human Resource Management</asp:ListItem>
                            <asp:ListItem>Information Technology</asp:ListItem>
                            <asp:ListItem>Interior Design</asp:ListItem>
                            <asp:ListItem>Law</asp:ListItem>
                            <asp:ListItem>Mchanical Engineering</asp:ListItem>
                            <asp:ListItem>Managment Information System</asp:ListItem>
                            <asp:ListItem>Software Engineering</asp:ListItem>
                            <asp:ListItem>Other</asp:ListItem>
                        </asp:DropDownList><span class="auto-style8">Choose major.</span></td>
                </tr>

                <tr>
                    <td class="auto-style5">Note:</td>
                    <td>
                        <asp:TextBox ID="TxtNote" placeholder="Add More Information..." runat="server" Width="210px" Height="76px" TextMode="MultiLine"></asp:TextBox></td>
                </tr>

                <tr>
                    <td align="center" colspan="2">
                        <br />
                        <asp:Button ID="Button1" runat="server" Text="Register" Font-Size="Medium" Height="36px" Width="110px" OnClientClick=" return confirm(Your request has been submitted successfully" OnClick="Button1_Click" /></td>
                </tr>
            </table>
        </div>
    </form>
</body>
</html>

这不是 SQL 命令,这就是您出现此错误的原因。

cmd.CommandText = "Your request has been submitted successfully"; ,就是一个句子.

cmd.CommandText 中,您必须使用 SQL 语言解析有效的 SQL 命令。

此外,您的命令必须包含您已在 .Parameters 中添加的参数,并且它们必须具有完全相同的名称。


在您的评论中回答:

这不是有效代码:

("insert into reg" + "TTitle, TName, TID, TEmail, TMobile, LMajor, TNote)values(@TxtTitle, @TxtName, @TxtID, @TxtEmail, @TxtMobile, @LstMajor, @TxtNote)",con);

这是正确的:

("insert into reg" + "(TTitle, TName, TID, TEmail, TMobile, LMajor, TNote)values(@TxtTitle, @TxtName, @TxtID, @TxtEmail, @TxtMobile, @LstMajor, @TxtNote)",con);

您在命令中遗漏了“(”符号。

  • 这是 SQL 中 INSERT 的正确格式。
INSERT INTO TABLE (COLUMN1, COLUMN2, COLUMN3,....) VALUES (VALUE1, VALUE2, VALUE3,....)
  • 如果你有参数,你可以像这样解析它们:
INSERT INTO TABLE (COLUMN1, COLUMN2, COLUMN3,....) VALUES (@parameter1, @parameter2, @parameter3,....)