c # - System.FormatException: 'Guid должен содержать 32 цифры с 4 штрихами (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).' - PullRequest
0 голосов
/ 17 октября 2018

Я не сталкивался с этой ошибкой, когда моя база данных была отключена.Я только что сделал свою базу данных онлайн с db4free.net.

Каждый раз, когда я вхожу в эту ошибку, происходит.Может кто-нибудь указать, что не так?

private void btnLogIn_Click(object sender, EventArgs e)
    {
        string query = "select * from tbl_accounts where username='" + tbxUsername.Text + "' and password='" + tbxPassword.Text + "'";
        MySqlCommand command = new MySqlCommand(query, connection);
        MySqlDataAdapter da = new MySqlDataAdapter(command);
        DataTable dt = new DataTable();
        da.Fill(dt);

        try
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow dr = dt.Rows[i];

                if (dt.Rows.Count > 0)
                {
                    employee_id = (dr["employee_id"].ToString().PadLeft(4, '0'));
                    fullname = (dr["account_firstname"] + " " + dr["account_lastname"]).ToString();
                    this.Invoke(new Action(() =>
                    {
                        connection.Open();
                        command.ExecuteNonQuery();
                        connection.Close();
                        this.Close();
                        th = new Thread(openNewForm);
                        th.SetApartmentState(ApartmentState.STA);
                        th.Start();
                    }));
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

Вот ошибка:

Exception screenshot

Обновлено: вот мойСтрока подключения:

MySqlConnection connection = new MySqlConnection("datasource=db4free.net;Convert Zero Datetime=True;SslMode=none");

1 Ответ

0 голосов
/ 17 октября 2018
  1. Если ваша ошибка происходит здесь, ваша проблема возникает до этого: da.Fill(dt);
  2. И у вас есть два поля базы данных и два элемента управления
  3. Таким образом, ваша проблема, вероятно, с одним издва поля базы данных (имя пользователя или пароль)
  4. Я предполагаю, что имя пользователя - varchar или что-то в этом роде
  5. Поэтому ваш пароль, скорее всего, GUID

Вывод:Вам, вероятно, следует отформатировать значение, извлеченное из tbxPassword.Text, в GUID.И, как указано выше, вы также захотите защитить от внедрения SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...