当数据库中的数据发生变化时更新变量
问题描述:
这里我有三个变量,变量由数据库中的数据填充,并使用标签将其显示在屏幕上。 但是,当我更改数据库中的数据时,变量不会自动更改。 我会尝试做什么是创建一个变量,以便在数据库中的数据更改时自动更改。 但我不知道该怎么做,因为我是新手。当数据库中的数据发生变化时更新变量
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Data.SqlClient;
namespace vendingInterface
{
public partial class Form1 : Form
{
public MySqlConnection conn;
private string server;
private string database;
private string uid;
private string password;
private string produk11;
private string produk22;
private string produk33;
public Form1()
{
bacadatabase();
InitializeComponent();
info();
}
我显示使用标签
private void info()
{
lbl_produk1.Text = "Jumlah Produk 1 = " + produk11 + " Buah";
lbl_produk2.Text = "Jumlah Produk 2 = " + produk22 + " Buah";
lbl_produk3.Text = "Jumlah Produk 3 = " + produk33 + " Buah";
}
我把数据库中的数据
public void bacadatabase()
{
string sql = "select *from vanding_machine";
server = "localhost";
database = "db_s2u";
uid = "root";
password = "";
string connString = "SERVER=" + server + ";" + " DATABASE=" + database + ";" + " UID=" + uid + ";" + " PASSWORD=" + password + ";"; //conek SQL
MySqlConnection conn = new MySqlConnection(connString);
conn.Open();
//MessageBox.Show("Koneksi Berhasil");
//command
MySqlCommand cmd = new MySqlCommand(sql, conn);
//reader
MySqlDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
produk11 = dataReader["produk1"].ToString();
produk22 = dataReader["produk2"].ToString();
produk33 = dataReader["produk3"].ToString();
}
dataReader.Close();
conn.Close();
}
当我点击按钮的数据将被输入到数据库和变量的原因该节目将自动更新
private void button9_Click(object sender, EventArgs e)
{
server = "localhost";
database = "db_s2u";
uid = "root";
password = "";
string connString = "SERVER=" + server + ";" + " DATABASE=" + database + ";" + " UID=" + uid + ";" + " PASSWORD=" + password + ";"; //conek SQL
MySqlConnection conn = new MySqlConnection(connString);
conn.Open();
//MessageBox.Show("Koneksi Berhasil");
string sql = "update vanding_machine set produk1 = @produk111;";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.Add(new MySqlParameter("@produk111", tb_produk1.Text));
//close data reader
cmd.ExecuteNonQuery();
//close connection
conn.Close();
}
private void button8_Click(object sender, EventArgs e)
{
}
private void button7_Click(object sender, EventArgs e)
{
}
private void button4_Click(object sender, EventArgs e)
{
}
private void button2_Click_1(object sender, EventArgs e)
{
}
}
}
答
您将不得不创建计时器来检查应用程序中是否更改了数据。数据库不会指出有关任何变化的应用程序
+0
我不知道如何创建它。你能否向我清楚解释一下@ErikŠťastný –
+1
我试过了,它能正常工作。谢谢@ErikŠťastný –
行,所以你在某些时候读了一些值,但你必须去检查这些值是否改变,SQL不会通知更改 – BugFinder
@BugFinder然后我怎么知道如果数据库中的数据发生变化,如果sql没有通知。你有解决方案吗?因为我没有解决方案 –
你是否从你的表单插入到数据库中,你是否检查你的数据库以确保你插入的是 –