DataSource is a property of some controls (like DataGridView) which is used for binding data to these Controls.

The best would be to look an example:

public partial class Form1 : Form
        DataGridView dgv;
        DataTable table;
        BindingSource bs;
        public Form1()
            dgv = new DataGridView();
            dgv.Location = new Point(20, 20);

            //this will always create a new row in the end of dgv:
            //when user will do insertion into new row of dgv, 
            //data will be automatically transfered to dataTable as well!
            dgv.AllowUserToAddRows = true;

        private void CreatingDataSource()
            table = new DataTable("myTable");
            table.Columns.Add("Id", typeof(int));
            table.Columns.Add("Name", typeof(string));
            //get some example data:
            table = GetData(table);
            //bind table to binding source:
            bs = new BindingSource(table, null);
            //bind binding source to dgv:
            dgv.DataSource = bs;

        private DataTable GetData(DataTable table)
            //my example data (I will add 2 rows):
            DataRow dr;
            for (int i = 1; i < 3; i++)
                dr = table.NewRow();
                dr["Id"] = i;
                dr["Name"] = "name " + i;
            return table;

Hope it helps,

Good explanation!
This question has already been answered. Start a new discussion instead.