1

これは私のコードですが、これまでのところ正しくやっていると思いますが、何が問題なのか本当にわかりません。ユーザー名とパスワードのtxtboxで登録フォームを作成していますパスワードをMD5で暗号化しましたが、MD5暗号化を削除しようとしましたが、それが問題である可能性がありますが、削除しても問題は解決しません。

ApareceCrudLib a = new ApareceCrudLib("localhost", "root", "",  "cashieringdb");

            string query = "INSERT INTO register (username,password) " +
                          "VALUES(" +
                           "'" + txtUser.Text + "'," +
                           "MD5('" + txtPass.Text +"')";
            a.mysqlInsert(query);
            MessageBox.Show("Account has been registered!");
            this.Close();

これは私のクラス ApareceCrudLib for mysqlInsert のコードです

 public void mysqlInsert(string query)
        {
            try
            {
                if (this.Open())
                {
                    MySqlCommand cmd = new MySqlCommand(query, conn);
                    cmd.ExecuteNonQuery();
                    this.Close();
                    System.Windows.Forms.MessageBox.Show("Record Inserted!");
                }
            }
            catch { this.Close(); System.Windows.Forms.MessageBox.Show("INSERT Record Error!"); }
            return;
        }

ご覧のとおり、ダイアログボックスでエラーをキャッチするので、基本的にデータベースへの挿入または接続に失敗すると、メッセージボックスに「INSERT Record Error!」と表示されます。ちなみにVisual Studioではデータベースへの挿入のみでエラーは出ません。

データベース文字列 query = "INSERT を挿入するためのコードのどこかにエラーがあると思います

INTO register (username,password) " +
                              "VALUES(" +
                               "'" + txtUser.Text + "'," +
                               "MD5('" + txtPass.Text +"')";

カンマ、セミコロン、ピリオドかもしれません。

Hi!rhughes エラーの画像はこちらです!

ここに画像の説明を入力

4

3 に答える 3

3

文字列クエリに ")" を追加する必要があります。

string query = "INSERT INTO register (username,password) " +
                      "VALUES(" +
                       "'" + txtUser.Text + "'," +
                       "MD5('" + txtPass.Text +"'))";
                                                  ^ HERE
于 2013-03-30T07:35:17.440 に答える
1

SQL が正しくありません。開始の "(" が 2 つあり、終了が 1 つだけあります。

于 2013-03-30T07:35:23.680 に答える
1

実際のエラーを確認するには、次を試してください。

try
{
    if (this.Open())
    {
        MySqlCommand cmd = new MySqlCommand(query, conn);
        cmd.ExecuteNonQuery();
        this.Close();
        System.Windows.Forms.MessageBox.Show("Record Inserted!");
    }
}
catch(Exception ex)
{
    this.Close();
    System.Windows.Forms.MessageBox.Show(String.Format("INSERT Record Error! {0}", ex.Message));
}
于 2013-03-30T07:37:18.183 に答える