C# 为什么这个特殊的INSERT语句失败?

C# 为什么这个特殊的INSERT语句失败?,c#,sql,sql-server,ado.net,C#,Sql,Sql Server,Ado.net,我正在尝试将ASP.NET web应用程序中的数据插入SQL Server数据库表(我以前创建过该表)。我的代码似乎不起作用,显示错误消息,实际数据似乎没有保存到数据库中 var conn = new SqlConnection("Data Source=SHRIYA\\SQLEXPRESS;Initial Catalog=…;Integrated Security=True"); var insert = new SqlCommand("Insert Into tblRegister(Gen

我正在尝试将ASP.NET web应用程序中的数据插入SQL Server数据库表(我以前创建过该表)。我的代码似乎不起作用,显示错误消息,实际数据似乎没有保存到数据库中

var conn = new SqlConnection("Data Source=SHRIYA\\SQLEXPRESS;Initial Catalog=…;Integrated Security=True");

var insert = new SqlCommand("Insert Into tblRegister(GenerateID,Name,Surname,ID_Number,Gender,Address,Postal_code,Phone_Number,Email,Password) values(@GenerateID,@Name,@Surname,@ID_Number,@Gender,@Address,@Postal_code,@Phone_Number,@Email,@Password", conn);
insert.Parameters.AddWithValue("@GenerteID",lstuserID.SelectedIndex);
insert.Parameters.AddWithValue("@Name", txtname.Text);
insert.Parameters.AddWithValue("@Surname", txtsurname.Text);
insert.Parameters.AddWithValue("ID_Number", txtid.Text);
insert.Parameters.AddWithValue("@Gender", ddlgender.SelectedItem);
insert.Parameters.AddWithValue("@Address", txtaddress.Text);
insert.Parameters.AddWithValue("@Postal_code", txtpostalcode.Text);
insert.Parameters.AddWithValue("@Phone_Number", txttele.Text);
insert.Parameters.AddWithValue("@Email", txtEmail.Text);
insert.Parameters.AddWithValue("@Password", txtpassword);

try
{
    conn.Open();
    insert.ExecuteNonQuery();
}
catch (Exception)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "error", "alert('Error When Saving');", true);
}  
conn.Close();
  • 一个错误是使用
    txtpassword
    (即作为一个整体的UI控件)作为
    SqlParameter
    的值。将其替换为
    txtpassword.Text
    (即输入到UI控件中的文本值):

  • SQL命令文本缺少值()的右括号():

  • SQL语法错误

    在最后一个参数
    @Password
    处缺少

    那应该是

    insert.Parameters.AddWithValue("@ID_Number", txtid.Text);
    

    错误消息是什么?您应该签出并停止使用
    .AddWithValue()
    -这可能会导致意外的结果…@shryabramdeo:您是否考虑过将密码(
    @Password
    )存储为纯文本的含义?请花一分钟读一下:;也许这是:。其他人也指出了其他错误。我已经尝试过了,但仍然无法保存到SQL server。我的SQL Server可能有问题吗?如果无法保存数据,则获取我设置的错误消息时出现的任何错误。替换
    ScriptManager.RegisterStartupScript(此,GetType(),“error”,“alert('error When Saving');”,true)抛出
    并告诉我error或remove try catch块以交叉检查什么是error我尝试了,但似乎仍然没有将数据插入SQL表
    
    SqlCommand insert = new SqlCommand("Insert Into 
    tblRegister(GenerateID,Name,Surname,ID_Number,Gender,Address,
    Postal_code,Phone_Number,Email,Password) 
    values(@GenerateID,@Name,@Surname,@ID_Number,@Gender,@Address,
    @Postal_code,@Phone_Number,@Email,@Password)", conn);
    //                                         ^
    
    SqlCommand insert = new SqlCommand("Insert Into tblRegister(GenerateID,Name,Surname,ID_Number,Gender,Address,Postal_code,Phone_Number,Email,Password) values(@GenerateID,@Name,@Surname,@ID_Number,@Gender,@Address,@Postal_code,@Phone_Number,@Email,@Password", conn);
    
    SqlCommand insert = new SqlCommand("Insert Into tblRegister(GenerateID,Name,Surname,ID_Number,Gender,Address,Postal_code,Phone_Number,Email,Password) values(@GenerateID,@Name,@Surname,@ID_Number,@Gender,@Address,@Postal_code,@Phone_Number,@Email,@Password)", conn);
    
    insert.Parameters.AddWithValue("ID_Number", txtid.Text);
    
    insert.Parameters.AddWithValue("@ID_Number", txtid.Text);