Как посчитать количество записей, заданных при условии? - PullRequest
0 голосов
/ 11 декабря 2019

Я в основном новичок в кодировании, и я в универе, у нас есть небольшой проект, который нужно завершить, и я использую OleDb, чтобы сделать это, как я использовал его раньше, я пытаюсь подсчитать числострок, где поле равно определенному значению, но я всегда получаю 0. Чтобы быть более понятным, я хочу получить статистику, показывающую процент мужчин / женщин, которые завершили опрос (программу, которую я делаю), в настоящее время у меня есть 1 мужчинаи 2 женщины, поэтому моя строка для всех строк показывает 3, что правильно, но когда я хочу подсчитать все строки, которые содержат женщин, он показывает 0, поэтому общий процент равен 0, и текстовое поле, которое должно показывать статистикупоказывает 0, вот код:

private void Form2_Load(object sender, EventArgs e)
    {
        String connectionString;
        connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\Users\kubas\Desktop\MyProject\ProjectDB.accdb'";
        using (OleDbConnection myConnection = new OleDbConnection(connectionString))
        {
            string Gender1 = "Female";
            OleDbConnection con;
            OleDbCommand cmd = new OleDbCommand();
            OleDbCommand cmd1 = new OleDbCommand();
            con = new OleDbConnection(connectionString);
            con.Open();
            cmd.CommandText = "SELECT Count(Gender) FROM Survey WHERE Gender = '" + Gender1 + "'";
            cmd1.CommandText = "SELECT Count(Gender) FROM Survey";
            cmd.Connection = con;
            cmd1.Connection = con;
            con.Close();
            try
            {
                con.Open();
                int total = (Int32)cmd.ExecuteScalar();
                int total1 = (Int32)cmd1.ExecuteScalar();
                int tot;
                tot = total / total1 * 100;
                string ttal = Convert.ToString(tot);
                textBox1.Text = ttal;
                con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }

            }

извините, если есть что-то, чего вы не можете понять, английский не мой родной язык.

...