За последние пару дней я боролся с тем, как обновить свои диаграммы в C#. Диаграмма обновляется данными из базы данных посредством привязки данных. К сожалению, когда я сохраняю новые данные в базе данных, диаграмма не выполняется автоматически, мне всегда нужно выйти из приложения и снова войти в систему, чтобы обновить график.Последующие действия по обновлению диаграмм в C#
Чтобы решить эту проблему, я решил отказаться от привязки данных и программно создать свою диаграмму, которая загружается при запуске приложения. Затем я создал кнопку «Обновить», которую я использую для обновления диаграммы. Это ввело новый вопрос. Всякий раз, когда я нажимаю кнопку «Обновить», система сохраняет старую диаграмму и добавляет обновленную диаграмму к ней «бок о бок». Если я нажму второй раз, он отобразит 3 копии диаграммы «бок о бок». Это продолжается до бесконечности.
Ниже приведены мои коды, и у меня есть скриншоты для вашего прочтения.
//this is my constructor
public ChartDemo()
{
InitializeComponent();
connectionString = "Data Source=ADMINISTRATOR;Initial Catalog=AMIS;Persist Security Info=True;User ID=sa;Password=1234";
cnn = new SqlConnection(connectionString);
try
{
cnn.Open();
cnn.Close();
}
catch (Exception)
{
}
//this loads the chart whenever the application is launched
loadChart();
}
private void button1_Click_1(object sender, EventArgs e)
{
//this is used to refersh my chart
loadChart();
}
public void loadChart() {
// this populates my chart with data from the database
SqlConnection cnn = new SqlConnection(connectionString);
SqlCommand sqlcmd = new SqlCommand("SELECT * FROM tbl_salary;", cnn);
SqlDataReader dr;
try
{
cnn.Open();
dr = sqlcmd.ExecuteReader();
while (dr.Read())
{
this.chart1.Series["salaryChart"].Points.AddXY(dr.GetString(1), dr.GetInt32(2));
}
cnn.Close();
}
catch (Exception)
{
}
}
Прикрепленные скриншоты chartsScreenshots
если вы хотите автоматического обновления, то вы можете использовать резьб –
Отлично! Оно работает! Спасибо. – myelow