2016-03-21 21 views
0

Her şeyden önce C# ve Visual Studio ile yeni. DataGridView'ı MySql tablosundan nasıl dolduracağım konusunda bir eğitici takip ettim. Hataları kopyalamak için birden çok kez kontrol ettim, ancak bulamadım. kod şudur:Mysql Veritabanı'ndan DataGrid'i Doldurun

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.MySqlClient; 

namespace DataGridMain 
{ 
    public partial class Form1 : Form 
    { 
     private string server; 
     private string database; 
     private string uid; 
     private string password; 
     private MySqlConnection connection; 
     private MySqlDataAdapter mySqlDataAdapter; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
     server = "localhost"; 
     database = "elphoapp"; 
     uid = "username"; 
     password = "password"; 
     string connectionString; 
     connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; 

    connection = new MySqlConnection(connectionString); 

    if (this.OpenConnection() == true) 
    { 
     mySqlDataAdapter = new MySqlDataAdapter("select * from users", connection); 
     DataSet DS = new DataSet(); 
     mySqlDataAdapter.Fill(DS); 
     dataGridView1.DataSource = DS.Tables[0]; 
     this.CloseConnection(); 
    } 


     } 

private bool OpenConnection() 
{ 
    try 
    { 
     connection.Open(); 
     return true; 
    } 
    catch (MySqlException ex) 
    { 
     switch (ex.Number) 
     { 
      case 0: 
       MessageBox.Show("Cannot connect to server. Contact administrator"); 
       break; 
      case 1045: 
       MessageBox.Show("Invalid username/password, please try again"); 
       break; 
      default: 
       MessageBox.Show(ex.Message); 
       break; 
     } 
     return false; 
    } 
} 
     private bool CloseConnection() 
{ 
    try 
    { 
     connection.Close(); 
     return true; 
    } 
    catch (MySqlException ex) 
    { 
     MessageBox.Show(ex.Message); 
     return false; 
    } 
} 
    } 
    } 

Ben bir sorun bulmak gibi olamaz ve hiçbir hata görüntülüyor.

cevap

0

Visual Studio'da yeniyseniz, tavsiyem yapmanız gereken ilk şey hata ayıklamadır. Çok fazla zaman kazandıracak. Bu durumda, form_load'unuza bir kesme noktası koyun ve kodu adım adım çalıştırın. Bu şekilde neler olduğunu görebilir ve tüm değişkenleri inceleyebilirsiniz. Bunu söylüyorum, çünkü kodunuzda herhangi bir hata göremiyorum, bu yüzden veritabanına bile bağlanmıyorsunuzdur. Kodunuzu hata ayıklama neden görebilirsiniz

+0

Neyin olduğunu tahmin edin. Debug.WriteLine da çalışmıyor. Nereye koyduğum önemli değil, işe yaramıyor. Tekrar hata yok ve hiçbir şey hata ayıklamadır. Sanırım C programlama dilleri bir tür ... –

0

Tamam anladım! Tek yapmam gereken Form1() işlevinin içinden Form1_Load çağrısı yapmaktı. Her şey iyi çalışıyor gibi görünüyor. Teşekkürler, C# lanet olası sürprizlerle dolu ....

+0

Hmm ... "Konsol uygulaması" türündeki projeniz nedir? Öyle ise, bir Form For Windows çağrısı işleyicisi olduğundan, açıkça Form_Load çağrılmazdı. – Pikoh

İlgili konular