it-swarm.com.de

Füllen Sie einen Datagridview mit SQL-Abfrageergebnissen

Ich versuche, Abfrageergebnisse zu präsentieren, bekomme aber immer ein leeres Datengitter. Es ist, als ob die Daten selbst nicht sichtbar sind

Hier ist mein Code:

 private void Employee_Report_Load(object sender, EventArgs e)
 {
     string select = "SELECT * FROM tblEmployee";
     Connection c = new Connection();
     SqlDataAdapter dataAdapter = new SqlDataAdapter(select, c.con); //c.con is the connection string
     SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);

     DataTable table = new DataTable();
     table.Locale = System.Globalization.CultureInfo.InvariantCulture;
     dataAdapter.Fill(table);
     bindingSource1.DataSource = table;

     dataGridView1.ReadOnly = true;        
     dataGridView1.DataSource = bindingSource1;
}

Was ist los mit diesem Code?

26
user2023203

Hier ist Ihr Code repariert. Als nächstes vergessen Sie die Bindungsquelle

 var select = "SELECT * FROM tblEmployee";
 var c = new SqlConnection(yourConnectionString); // Your Connection String here
 var dataAdapter = new SqlDataAdapter(select, c); 

 var commandBuilder = new SqlCommandBuilder(dataAdapter);
 var ds = new DataSet();
 dataAdapter.Fill(ds);
 dataGridView1.ReadOnly = true; 
 dataGridView1.DataSource = ds.Tables[0];
35
String strConnection = Properties.Settings.Default.BooksConnectionString;
SqlConnection con = new SqlConnection(strConnection);

SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = con;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "Select * from titles";
SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd);

DataTable dtRecord = new DataTable();
sqlDataAdap.Fill(dtRecord);
dataGridView1.DataSource = dtRecord;
7
sayed hashim

Sie brauchen bindingSource1 nicht

Einfach dataGridView1.DataSource = table; einstellen

2
banging

Versuchen Sie, Ihre DataGridView an die DefaultView der DataTable zu binden:

dataGridView1.DataSource = table.DefaultView;
1
Khan

wenn Sie Mysql verwenden, können Sie diesen Code verwenden.

string con = "SERVER=localhost; user id=root; password=; database=databasename";
    private void loaddata()
{
MySqlConnection connect = new MySqlConnection(con);
connect.Open();
try
{
MySqlCommand cmd = connect.CreateCommand();
cmd.CommandText = "SELECT * FROM DATA1";
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
datagrid.DataSource = dt;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
0
Miguel

Sie können dieses Beispiel ausprobieren und immer Ihren Connection String überprüfen. Sie können dieses Beispiel mit oder ohne out-Bindungsquelle verwenden, mit der Sie die Daten in datagridview laden können.

private void Employee_Report_Load(object sender, EventArgs e)
{
        var table = new DataTable();

        var connection = "ConnectionString";

        using (var con = new SqlConnection { ConnectionString = connection })
        {
            using (var command = new SqlCommand { Connection = con })
            {

                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }

                con.Open();

                try
                {
                    command.CommandText = @"SELECT * FROM tblEmployee";
                    table.Load(command.ExecuteReader());

                    bindingSource1.DataSource = table;

                    dataGridView1.ReadOnly = true;
                    dataGridView1.DataSource = bindingSource1;

                }
                catch(SqlException ex)
                {
                    MessageBox.Show(ex.Message + " sql query error.");
                }

            }

        }

 }
0
Ramgy Borja

Sie erhalten möglicherweise ein leeres Datenraster, wenn Sie die Datenquelle auf ein Dataset setzen, das Sie dem Formular hinzugefügt haben, aber nicht verwendet werden. Setzen Sie diese Option auf Keine, wenn Sie Ihre dataSource basierend auf den oben genannten Codes programmgesteuert einstellen.

0
Damion Willi

sie müssen die Eigenschaftstabellen der DataGridView-Datenquelle hinzufügen

 dataGridView1.DataSource = table.Tables[0];
0
Mohammed Elrayh