簡體   English   中英

無法從 MySql 數據庫填充數據網格視圖

[英]Unable to populate Data Grid View from MySql database

誰能指出我在這里做錯了什么? 我正在毫無問題地連接到我的數據庫,並且查詢在 MySql 工作台中產生結果。 但是,我無法將查詢結果放入我的 dataGridView、dailyApptsDgv 中。

我已經單獨嘗試了所有 3 個 LoadDailyAppointments(),但它們都沒有填滿我的 dgv,也沒有導致錯誤。

       public Form()
       {
            InitializeComponent();
            CheckConnection();
            LoadDailyAppointments1()
            //LoadDailyAppointments2()
            //LoadDailyAppointments3()      
       }

       public void CheckConnection()
       {
           MySqlConnection con = new MySqlConnection(cs);
           try
           {
               con.Open();
               MessageBox.Show("Connection Open!");
               con.Close();
           }
           catch (Exception)
           {
               MessageBox.Show("No connection!");
           }
       }

       private void LoadDailyAppointments1() 
       {
           using (MySqlConnection con = new MySqlConnection(cs))
           {
               con.Open();
               MySqlCommand cmd = new MySqlCommand("Select * from Appointments", con);
               
               MySqlDataReader rdr = cmd.ExecuteReader();
               dailyApptsDgv.DataSource = rdr;
           }
       }

       private void LoadDailyAppointments2() 
       {
           using (MySqlConnection con = new MySqlConnection(cs))
           {
               con.Open();
               MySqlCommand cmd = new MySqlCommand("Select * from Appointments", con);
               dailyApptsDgv.DataSource = cmd.ExecuteReader();
           }
       }

       private void LoadDailyAppointments3()  
       {
           MySqlDataAdapter adp = new MySqlDataAdapter("Select * from Appointments", cs);
           DataSet dsDailyAppts = new DataSet();           
           adp.Fill(dsDailyAppts);
           
           dailyApptsDgv.DataSource = dsDailyAppts;     // I've tried running with and without this line 
       }

表單設計器.cs

            // dailyApptsDgv
            // 
            this.dailyApptsDgv.AllowUserToAddRows = false;
            this.dailyApptsDgv.AllowUserToDeleteRows = false;
            this.dailyApptsDgv.AllowUserToResizeRows = false;
            this.dailyApptsDgv.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
            this.dailyApptsDgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            this.dailyApptsDgv.Cursor = System.Windows.Forms.Cursors.Default;
            this.dailyApptsDgv.Location = new System.Drawing.Point(263, 44);
            this.dailyApptsDgv.MultiSelect = false;
            this.dailyApptsDgv.Name = "dailyApptsDgv";
            this.dailyApptsDgv.ReadOnly = true;
            this.dailyApptsDgv.RowHeadersVisible = false;
            this.dailyApptsDgv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
            this.dailyApptsDgv.ShowEditingIcon = false;
            this.dailyApptsDgv.Size = new System.Drawing.Size(629, 240);
            this.dailyApptsDgv.TabIndex = 15;
            // 

我已經盡可能地簡化了我的代碼和查詢,但仍然無法正常執行。

任何建議表示贊賞! 謝謝!

DataTable dt = (DataTable)JsonConvert.DeserializeObject<DataTable>(JsonString);
dataGridView1.DataSource = dt;

我的案例只是向 API 請求數據。 它返回 JSON 我將 JSON 轉換為 Datatable 並設置為我的 DGV 源並在我的情況下工作。

****剛剛從數據庫中獲取數據並將其分配給 DGV 源,它將填充您的 DGV 以填充 DGV 您還可以將數據庫 Model 綁定到 c# 中的 DGV。 C# 桌面應用程序提供 DGV 功能將其綁定到數據庫,這便於您在 DGV 上實現實時 CRUD 操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM