单击按钮以在数据库中保存值时出错

时间:2018-05-15 11:03:13

标签: c# asp.net sql-server

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

    }

    protected void BtSignup_Click(object sender, EventArgs e)
    {
        String CS = ConfigurationManager.ConnectionStrings["MyDatabaseConnectionString1"].ConnectionString;
        using (SqlConnection con = new SqlConnection(CS))
        {
            SqlCommand cmd = new SqlCommand("insert into Users values('"+TbUname.Text+"', '"+TbPass.Text+"','"+TbEmail.Text+"', '"+TbName.Text+"')",con);
            con.Open();
            cmd.ExecuteNonQuery(); //error in this line
        }
    }

}

2 个答案:

答案 0 :(得分:1)

在没有添加错误代码的情况下,我可以看到两个可能出现的问题。

  1. 是您缺少insert语句中的列名。
  2. 是用户将撇号放在其中一个文本框中。这是一个SQL注入漏洞。
  3. 尝试类似的东西:

    using (SqlConnection con = new SqlConnection(CS))
    {
        // add the columns and do not concatenate strings in SQL statements
        SqlCommand cmd = new SqlCommand(@"insert into Users 
             (username, password, email, name) 
               values 
             (@username, @password, @email, @name)", con);
    
        // add values by using sql parameters
        cmd.Parameters.AddWithValue("@username", TbUname.Text);
        cmd.Parameters.AddWithValue("@password", TbPass.Text);
        cmd.Parameters.AddWithValue("@email", TbEmail.Text);
        cmd.Parameters.AddWithValue("@name", TbName.Text);
    
        con.Open();
    
        cmd.ExecuteNonQuery();
    }
    

答案 1 :(得分:0)

insert into Users (dbcol1, dbcol2, dbcol3, dbcol4)values('"+TbUname.Text+"', '"+TbPass.Text+"','"+TbEmail.Text+"', '"+TbName.Text+"')

这里dbcol意味着它是你的表名称....

试试这个..

并且在您的数据库表中id不允许空值。我认为你的coloumn(id)是主键。你不能改变传递null,否则你应该传递(id)coloumn中的值..