I have a button in a form that loads a datagrid and two text boxes. When the form first opens, my datagrid and text boxes are blank. Clicking the button will load the datagrid and fill the two text boxes.

But clicking the button a second time will generate a "This causes two bindings in the collection to bind to the same property." error.

The error occurs at this line:
txtFirstName.DataBindings.Add(new Binding("Text", tblNamesBS, "FirstName"));

What codes should I add to the program to prevent the error?

The source code is as follows:

Code:
    public partial class Form1 : Form
    {
        DataSet ds = new DataSet();
        SqlConnection cs = new SqlConnection(StrConn);
        SqlDataAdapter da = new SqlDataAdapter();

        BindingSource tblNamesBS = new BindingSource();


        private void btnDisplay_Click(object sender, EventArgs e)
        {
            da.SelectCommand = new SqlCommand("SELECT EmployeeId, FirstName, LastName FROM EMPLOYEE", cs);
            ds.Clear(); 
            da.Fill(ds);
            dgGrid.DataSource = ds.Tables[0];

            tblNamesBS.DataSource = ds.Tables[0];
            txtFirstName.DataBindings.Add(new Binding("Text", tblNamesBS, "FirstName")); // error here
            txtLastName.DataBindings.Add(new Binding("Text", tblNamesBS, "LastName"));
        }
The error message as follows:
Code:
System.ArgumentException was unhandled
  Message="This causes two bindings in the collection to bind to the same property.\r\nParameter name: binding"
  Source="System.Windows.Forms"
  ParamName="binding"
  StackTrace:
       at System.Windows.Forms.ControlBindingsCollection.CheckDuplicates(Binding binding)
       at System.Windows.Forms.Binding.CheckBinding()
       at System.Windows.Forms.Binding.SetBindableComponent(IBindableComponent value)
       at System.Windows.Forms.ControlBindingsCollection.AddCore(Binding dataBinding)