База данных населения в C# ... Программа не запущена, но нет ошибок - PullRequest
0 голосов
/ 02 мая 2020

Я написал весь код, и нет ошибок, за исключением случаев, когда я go запускаю его, он говорит следующее:

"Visual Studio не может начать отладку, потому что цель отладки 'C: Отсутствует \ Users \ Smith \ source \ repos \ Population_Database \ Population_Database \ bin \ Debug \ Population_Database.exe '. Постройте проект и повторите попытку или установите свойства OutputPath и AssemblyName соответствующим образом, чтобы указать правильное расположение для целевой сборки. "

В учебнике говорится следующее:

В папке Chap11 примеров программ вы найдете файл базы данных с именем PopulationDB.mdf. В базе данных есть таблица с именем City. Таблица City имеет следующие столбцы: Имя столбца Тип данных City nvarchar (50) Первичный ключ Поплавок населения В столбце City хранится название города, а в столбце Population - население этого города. В базе данных уже введено 20 строк. Создайте приложение, которое подключается к базе данных PopulationDB.mdf и позволяет пользователю выполнять следующие действия: • Использовать элементы управления с привязкой к данным, чтобы добавлять новые строки в базу данных, изменять существующие строки и удалять строки. • Сортировка списка городов по населению в порядке возрастания. • Сортировка списка городов по населению в порядке убывания. • Сортировка списка городов по названию. • Получить общее население всех городов. • Получить среднюю численность населения всех городов. • Получить наибольшее население. • Получите наименьшее население.

Вот мой код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Population_Database
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

    }

    private void newrow_Click(object sender, EventArgs e)
    {
        SqlConnection cn = new SqlConnection();
        cn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PopulationDB.mdf;Integrated Security=True;User Instance=True";
        cn.Open();
        SqlDataAdapter adapter = new SqlDataAdapter("select * from City", cn);
        SqlCommandBuilder cmdb = new SqlCommandBuilder(adapter);
        DataSet ds = new DataSet("City");
        adapter.Fill(ds, "City");
        DataRow row = ds.Tables["City"].NewRow();
        row["City"] = textBox1.Text;
        row["Population"] = textBox2.Text;
        ds.Tables["City"].Rows.Add(row);
        adapter.Update(ds, "Income");
        cn.Close();
        MessageBox.Show("Details Entered Sucessfully ....");
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlConnection cn = new SqlConnection();
        cn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PopulationDB.mdf;Integrated Security=True;User Instance=True";
        cn.Open();
        SqlCommand cmd = new SqlCommand("Select * from City ORDER BY Population ASC", cn);
        SqlDataReader sdr = cmd.ExecuteReader();
        while (sdr.Read())
        {
            String tot;
            comboBox1.SelectedItem = tot.ToString();

        }
    }

    private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlConnection cn = new SqlConnection();
        cn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PopulationDB.mdf;Integrated Security=True;User Instance=True";
        cn.Open();
        SqlCommand cmd = new SqlCommand("Select * from City ORDER BY Population DESC", cn);
        SqlDataReader sdr = cmd.ExecuteReader();
        while (sdr.Read())
        {
            String tot;
            comboBox2.SelectedItem = tot.ToString();

        }
    }

    private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlConnection cn = new SqlConnection();
        cn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PopulationDB.mdf;Integrated Security=True;User Instance=True";
        cn.Open();
        SqlCommand cmd = new SqlCommand("Select City from City ", cn);
        SqlDataReader sdr = cmd.ExecuteReader();
        while (sdr.Read())
        {
            String tot;
            comboBox1.SelectedItem = tot.ToString();

        }
    }

    private void textBox3_TextChanged(object sender, EventArgs e)
    {
        SqlConnection cn = new SqlConnection();
        cn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PopulationDB.mdf;Integrated Security=True;User Instance=True";
        cn.Open();
        SqlCommand cmd = new SqlCommand("select SUM(Population) from City", cn);
        SqlDataReader sdr = cmd.ExecuteReader();
        while (sdr.Read())
        {
            double tot;
            tot = Convert.ToDouble(sdr.GetSqlValue(0).ToString());
            textBox3.Text = tot.ToString();
        }
    }

    private void textBox4_TextChanged(object sender, EventArgs e)
    {
        SqlConnection cn = new SqlConnection();
        cn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PopulationDB.mdf;Integrated Security=True;User Instance=True";
        cn.Open();
        SqlCommand cmd = new SqlCommand("select AVG(Population) from City", cn);
        SqlDataReader sdr = cmd.ExecuteReader();
        while (sdr.Read())
        {
            double tot;
            tot = Convert.ToDouble(sdr.GetSqlValue(0).ToString());
            textBox4.Text = tot.ToString();

        }
    }

    private void textBox5_TextChanged(object sender, EventArgs e)
    {
        SqlConnection cn = new SqlConnection();
        cn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PopulationDB.mdf;Integrated Security=True;User Instance=True";
        cn.Open();
        SqlCommand cmd = new SqlCommand("select MAX(Population) from City", cn);
        SqlDataReader sdr = cmd.ExecuteReader();
        while (sdr.Read())
        {
            double tot;
            tot = Convert.ToDouble(sdr.GetSqlValue(0).ToString());
            textBox5.Text = tot.ToString();
        }
    }

    private void textBox6_TextChanged(object sender, EventArgs e)
    {
        SqlConnection cn = new SqlConnection();
        cn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PopulationDB.mdf;Integrated Security=True;User Instance=True";
        cn.Open();
        SqlCommand cmd = new SqlCommand("select MIN(Population) from City", cn);
        SqlDataReader sdr = cmd.ExecuteReader();
        while (sdr.Read())
        {
            double tot;
            tot = Convert.ToDouble(sdr.GetSqlValue(0).ToString());
            textBox6.Text = tot.ToString();
        }
    }
}
}

Что мне не хватает?

1 Ответ

0 голосов
/ 02 мая 2020

Забегая вперед из комментариев: в ваших текстовых полях не будет отображаться никакого значения, потому что вы ничего не присваиваете в строках строки, просто объявляете.

Tot = sdr.item [независимо от того, какое имя столбца вы хотите отобразить значение] решит вашу неназначенную проблему.

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