将新用户添加到数据库

时间:2017-04-26 13:00:51

标签: c# sql

你好,你能帮助我吗

private void button2_Click(object sender, EventArgs e)
{
    Byte[] IMAGES = null;
    FileStream STREAM = new FileStream(IMGLOCATION, FileMode.Open, FileAccess.Read);
    BinaryReader BSR = new BinaryReader(STREAM);
    IMAGES = BSR.ReadBytes((int)STREAM.Length);

    CON.Open();
    string SQLQUERY = "INSERT INTO USERS (FULNAME,USERNAME,PASSWORD,IMAGE,STATUS)VALUES('"+textBox2.Text+"','"+textBox1.Text+"'.'"+textBox3.Text+ "',@IMG,'" + textBox4.Text + "')";
    CMD = new SqlCommand(SQLQUERY,CON);
    CMD.Parameters.Add(new SqlParameter("@IMG", IMAGES));
    int N = CMD.ExecuteNonQuery();
    CON.Close();
    MessageBox.Show("USER CREATED SUCCESSFULLY");
}

当我尝试使用密码12345

创建新用户时,我尝试将图片放在最后仍然是同样的错误
  

' 12345

附近的语法不正确

3 个答案:

答案 0 :(得分:5)

... +textBox1.Text+"'.'"+textBox3.Text+ ...
                     ^
                     |
          change this dot to comma

之后,我建议重写您的查询以使用所有注入值的参数。

答案 1 :(得分:3)

我认为你需要TextBox1和TextBox3之间的逗号

string SQLQUERY = "INSERT INTO USERS (FULNAME,USERNAME,PASSWORD,IMAGE,STATUS)VALUES('"+textBox2.Text+"','"+textBox1.Text+"','"+textBox3.Text+ "',@IMG,'" + textBox4.Text + "')";

答案 2 :(得分:0)

你的问题只是语法;你在textBox1.Text+"'.'"+textBox3.Text

有一段时间而不是一个逗号

另一个问题是您需要使用参数化查询。

以下是您更新的代码以使用参数化...

private void button2_Click(object sender, EventArgs e)
{
    Byte[] IMAGES = null;
    FileStream STREAM = new FileStream(IMGLOCATION, FileMode.Open, FileAccess.Read);
    BinaryReader BSR = new BinaryReader(STREAM);
    IMAGES = BSR.ReadBytes((int)STREAM.Length);

    CON.Open();
    string SQLQUERY = "INSERT INTO USERS (FULNAME,USERNAME,PASSWORD,IMAGE,STATUS)VALUES(@name, @username, @password, @IMG, @status)";
    CMD = new SqlCommand(SQLQUERY,CON);
    CMD.Parameters.AddWithValue("@name", textBox2.Text);
    CMD.Parameters.AddWithValue("@username", textBox1.Text);
    CMD.Parameters.AddWithValue("@password", textBox3.Text);
    CMD.Parameters.Add(new SqlParameter("@IMG", IMAGES));
    CMD.Parameters.AddWithValue("@status", textBox4.Text);
    int N = CMD.ExecuteNonQuery();
    CON.Close();
    MessageBox.Show("USER CREATED SUCCESSFULLY");
}

另一个问题是你没有加密密码,但我猜你最终会达到这个目的,或者只是为了创建一个小问题而把它拿出来。