tokazaki
tokazaki

Reputation: 11

GridView doesn't show data

private void fill()
{
  adptr = new OleDbDataAdapter(@"SELECT * FROM LibraryInfo WHERE First_Name='"+LoginName+"'", cn);      
  //LoginName is a string variable for displaying users info after the login          
  ds.Clear();
  adptr.Fill(ds);
  dataGridView1.DataSource = "";
  dataGridView1.DataSource = ds.Tables[0];
}

After the database updated, GridView didn't show data.

Upvotes: 1

Views: 2879

Answers (2)

jbutler483
jbutler483

Reputation: 24559

Taken from this msdn article on the DataBind Property.


ASP EXAMPLE


 void Page_Load(Object sender, EventArgs e)
  {

    // This example uses Microsoft SQL Server and connects
    // to the Northwind sample database. The data source needs
    // to be bound to the GridView control only when the 
    // page is first loaded. Thereafter, the values are
    // stored in view state.                      
    if(!IsPostBack)
    {
      // Declare the query string.
      String queryString = 
        "Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]";

      // Run the query and bind the resulting DataSet
      // to the GridView control.
      DataSet ds = GetData(queryString);
      if (ds.Tables.Count > 0)
      {
        AuthorsGridView.DataSource = ds;
        AuthorsGridView.DataBind();
      }
      else
      {
        Message.Text = "Unable to connect to the database.";
      }

    }     

  }

  DataSet GetData(String queryString)
  {

    // Retrieve the connection string stored in the Web.config file.
    String connectionString = ConfigurationManager.ConnectionStrings["NorthWindConnectionString"].ConnectionString;      

    DataSet ds = new DataSet();

    try
    {
      // Connect to the database and run the query.
      SqlConnection connection = new SqlConnection(connectionString);        
      SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection);

      // Fill the DataSet.
      adapter.Fill(ds);

    }
    catch(Exception ex)
    {

      // The connection failed. Display an error message.
      Message.Text = "Unable to connect to the database.";

    }

    return ds;

  }

This snippet shows you how to (a) bind your dataset to a gridview, by assigning it using the Databind method.

The site also says:

Use the DataBind() method to bind data from a data source to the GridView control. This method resolves all data-binding expressions in the active template of the control.

SOLUTION

I would like to reference the line saying:

 AuthorsGridView.DataBind();

which actually binds the data to the control.

SIDE NOTE

To protect yourself from SQLi, you should read up on SQL Parameters, and not direct concatenation.


WINFORM EXAMPLE


Tutorial was found: here

//create the connection string
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\myDatabase.mdb";

//create the database query
string query = "SELECT * FROM MyTable";

//create an OleDbDataAdapter to execute the query
OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, connString);

//create a command builder
OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter);

//create a DataTable to hold the query results
DataTable dTable = new DataTable();

//fill the DataTable
dAdapter.Fill(dTable);

Also:

//the DataGridView
DataGridView dgView = new DataGridView();

//BindingSource to sync DataTable and DataGridView
BindingSource bSource = new BindingSource();

//set the BindingSource DataSource
bSource.DataSource = dTable;

//set the DataGridView DataSource
dgView.DataSource = bSource;

Upvotes: 1

Midhun Mundayadan
Midhun Mundayadan

Reputation: 3192

Use are missing to call databind method here.Use following code :

 DataAdapter adapter=new DataAdapter(SqlCommand,SqlConn);
 DataTable tbl=new Datatable();
 adapter.Fill(tbl);
 GridView1.DataSource=tbl;
 GridView1.DataBind();//This line is missing in your code

try with this format?

Upvotes: 0

Related Questions