将值插入到用户=输入的数据库

时间:2014-09-25 14:33:35

标签: c# mysql

我有form1和form2。 Form1是Login,Form2是Main Menu。 我正在使用(C#Access),我的数据库中有字段,这是我的字段(Users,Pass,Player1,Player2)。

现在,我想将player1和player2字段中的值插入到具有相应Users字段的数据库中。

注意:用户是用户名。

怎么做?请帮帮我。

这是我当前的代码

Form1 f2 = new Form1();
            f2.ShowDialog();
           MessageBox.Show(f2.getTextBoxVal());//This is just a test in getting the Username from Form1 which is the Login form
            using (OleDbConnection con = new OleDbConnection(connParam))
            using (OleDbCommand cmd = new OleDbCommand("select count(*) from data where Users = ?"))
            {
                con.Open();
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@player1score", player1score);
                cmd.Parameters.AddWithValue("@player2score", player2score);
                object objRes = cmd.ExecuteScalar();
                if (objRes == null || (int)objRes == 0)
                {

                    cmd.Parameters.Clear();
                    cmd.CommandText = "INSERT INTO data (Player1,Player2) values(?, ?) WHERE Users='" + f2.getTextBoxVal() + "')";
                    cmd.Parameters.AddWithValue("@player1score", player1score.Text);
                    cmd.Parameters.AddWithValue("@player2score", player2score.Text);
                    int iRes = cmd.ExecuteNonQuery();//Error Here It says Missing semicolon (;) at end of SQL statement.

                    if (iRes > 0)
                        //errorProvider2.SetError(textBox1, "");
                        //errorProvider3.SetError(textBox1, "User name available!");
                        MessageBox.Show("Scores Save!!");
                }
                else
                {
                    MessageBox.Show("Just a Test!");
                }

                }

在form1中我用这个代码:

public string getTextBoxVal()
{
   return textBox1.Text;
}

这是用于获取form1

中的文本

在表格2中我用这个代码:

Form2 f2 = new Form2();
f2.ShowDialog();
MessageBox.Show( f2.getTextBoxVal());

这是我使用** Form1 *中的 getTextBoxVal()函数检索文本框val的方法:

我在这里使用它:

 cmd.CommandText = "INSERT INTO data (Player1,Player2) values(?, ?) WHERE Users='" + f2.getTextBoxVal() + "')";

但是,我无法将值保存到我用于登录的特定用户名或帐户。

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

INSERT不支持甚至不需要WHERE

您不需要它,需要相应地调整您的查询。

cmd.CommandText = "INSERT INTO data (Player1,Player2) values(?, ?)";

INSERT是关于向表中添加新条目。如果要更新,请使用UPDATE命令。该命令支持' WHERE'。

UPDATE通常看起来像:

UPDATE tablename
   SET col1 = 'val1', col2 = 'val2' ...
 WHERE id = id_value

此外,您首次使用cmd对我来说似乎并不合适。 你传递了两个玩家核心,只需要一个用户名。