Solved

easy question binding dataset to a datagrid.

Posted on 2008-06-09
11
381 Views
Last Modified: 2013-12-17
I have the following:

private void Form1_Load(object sender, EventArgs e)
        {
           
            InitialPriceReportingWS.InitialPriceReportingService s = new InitialPriceReportingWS.InitialPriceReportingService();

            ds = s.GetPriceListHeader();
            this.dataGridView1.DataSource = ds.Tables[0];
           
========> how do I do my binding.
            this.MainTabControl.TabPages.RemoveAt(2); // Error/Warning invisible until Load is completed.
            this.MainTabControl.TabPages.RemoveAt(2); // Compare invisible until compare button is pressed.


            //System.Data.DataTable dt = new System.Data.DataTable();
            //dt.Columns.Add("LastName", Type.GetType("System.String"));
            //dt.Rows.Add(new object[] { "Smith" });
            //dt.Rows.Add(new object[] { "Jones" });
            //dt.Rows.Add(new object[] { "Clark" });
            //ds.Tables.Add(dt);
            //ds.AcceptChanges();
           
        }
0
Comment
Question by:mathieu_cupryk
  • 5
  • 3
  • 3
11 Comments
 
LVL 9

Expert Comment

by:Rob Siklos
Comment Utility
try

this.dataGridView1.DataBind();
0
 

Author Comment

by:mathieu_cupryk
Comment Utility
Error      7      'System.Windows.Forms.DataGridView' does not contain a definition for 'DataBind'      C:\SvnWork\InitialPriceReporting\DotNet\InitialPriceReporting\Form1.cs      104      32      InitialPriceReporting
0
 
LVL 9

Expert Comment

by:sevensnake77
Comment Utility
try this maybe this will help
using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using System.Data.SqlClient;
 

    public class Form1 : System.Windows.Forms.Form

    {

        private System.Windows.Forms.DataGrid dataGrid1;

        private System.ComponentModel.Container components = null;
 

        public Form1()

        {

            InitializeComponent();

        }
 

        private void InitializeComponent(){

         this.dataGrid1 = new System.Windows.Forms.DataGrid();

         ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();

         this.SuspendLayout();

         this.dataGrid1.DataMember = "";

         this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;

         this.dataGrid1.Location = new System.Drawing.Point(8, 8);

         this.dataGrid1.Name = "dataGrid1";

         this.dataGrid1.Size = new System.Drawing.Size(608, 256);

         this.dataGrid1.TabIndex = 0;

         this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

         this.ClientSize = new System.Drawing.Size(624, 272);

         this.Controls.Add(this.dataGrid1);

         this.Name = "Form1";

         this.Text = "Form1";

         this.Load += new System.EventHandler(this.Form1_Load);

         ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();

         this.ResumeLayout(false);
 

      }
 

      static void Main() {

            Application.Run(new Form1());

      }
 

      private void Form1_Load(object sender, System.EventArgs e){

         string connString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI";
 

         string sql = @"select * from employee";
 

         SqlConnection conn = new SqlConnection(connString);

         SqlDataAdapter da = new SqlDataAdapter(sql, conn);

         DataSet ds = new DataSet();

         da.Fill(ds, "customers");
 

         // Bind the data table to the data grid

         dataGrid1.SetDataBinding(ds, "customers");

      }

    }

Open in new window

0
 
LVL 9

Expert Comment

by:sevensnake77
Comment Utility
or here is another example I have within a button
private void DataSetBtn_Click(object sender, System.EventArgs e)

{

// Create a DataSet & add DataTable A and B to it

DataTable table = CreateDataTableA();

DataSet ds = new DataSet("ABSet");

ds.Tables.Add(table);

table = CreateDataTableB();

ds.Tables.Add(table);

// Bind DataSet to the DataGrid

dataGrid1.SetDataBinding(ds,"B");

}

Open in new window

0
 
LVL 9

Accepted Solution

by:
Rob Siklos earned 500 total points
Comment Utility
Oh sorry - you don't need to do that.

Looking at the MSDN example ( http://msdn.microsoft.com/en-us/library/fbk67b6z(VS.80).aspx ) it seems that you don't need to do anything other than set the data source.  Maybe your data source is empty?
0
Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

Author Comment

by:mathieu_cupryk
Comment Utility
remember i am using datagridview.
0
 
LVL 9

Expert Comment

by:sevensnake77
Comment Utility
doesn't matter the same methods should apply
0
 
LVL 9

Expert Comment

by:Rob Siklos
Comment Utility
sevensnake77:

no - I thought the same thing.  But if you look at the MSDN docs for DataGridView, it doesn't have the SetDataBinding method.


author:

can you try ResetBindings()?
0
 

Author Comment

by:mathieu_cupryk
Comment Utility
i have this right now?

 private void Form1_Load(object sender, EventArgs e)
        {
           
            InitialPriceReportingWS.InitialPriceReportingService WS = new InitialPriceReportingWS.InitialPriceReportingService();

            ds = WS.GetPriceListHeader();
            this.dataGridView1.DataSource = ds.Tables[0];

     
            dataGridView1.DataSource = PriceListHdrBindingSource;

not rows are there but the values are not.

it is empty.
I don't have an adapter because the query is called in a webservice and information is brought back in a dataset.
0
 

Author Comment

by:mathieu_cupryk
Comment Utility
there is no resetbindings?
0
 

Author Comment

by:mathieu_cupryk
Comment Utility
rob, the dataset is full then when I see it on the grid I see 7 rows of 24 columns epty?
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now