c# - 当数据库中的数据发生变化时更新变量

标签 c# mysql

这里我有三个变量,变量由数据库中的数据填充,并使用标签将其显示到屏幕上。 但是当我更改数据库中的数据时,变量不会自动更改。 我会尝试做的是创建一个变量,以便在数据库中的数据发生变化时自动更改。 但我不知道该怎么做,因为我是新手。

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)
        {

        }
    }
}

最佳答案

您必须创建计时器来检查应用程序中的数据是否已更改。数据库不会指向应用程序的任何更改

关于c# - 当数据库中的数据发生变化时更新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40604911/

相关文章:

c# - 如何使用 TypeConverter 转换特定于文化的 double ?

c# - 无效的文本区域

c# - 在Mysql数据库中插入Textbox.text "123456"作为密码

MySQL if then 子句

c# - MySQL 与 Visual Studio : Authentication Method 'mysql_clear_password' Not Supported, 如何修复?

MYSQL请求显示两张表行的差异并根据行id删除重复字段

mysql - 如果两个值之间的差的绝对值大于某个数,如何选择记录?

c# - 从隐藏的控制台应用程序显示表单

c# - 如何创建一个循环遍历列表并将要访问的数据成员作为输入参数的函数

c# - 类型 'System.IDisposable' 在未引用的程序集中定义