2012-07-25 23 views
6

Estoy trabajando en una base de datos en C# cuando pulso el botón de pantalla me sale un error:error de origen de datos: "No se puede enlazar a la propiedad o la columna"

Error:
Cannot bind to the property or column LastName on the DataSource. Parameter name: dataMember

Código:

private void Display_Click(object sender, EventArgs e) 
{ 
    Program.da2.SelectCommand = new SqlCommand("Select * From Customer", Program.cs); 
    Program.ds2.Clear(); 
    Program.da2.Fill(Program.ds2); 
    customerDG.DataSource = Program.ds2.Tables[0]; 

    Program.tblNamesBS2.DataSource = Program.ds.Tables[0]; 

    customerfirstname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "FirstName")); 
    customerlastname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "LastName")); //Line Error occurs on. 
} 

No estoy seguro de lo que significa que alguien puede ayudar, si hago un comentario de las dos últimas líneas se mostrará correctamente.

+1

¿Ha comprobado que LastName está escrito correctamente? – Stig

+2

Significa que no hay una columna llamada 'LastName' en esa tabla. – leppie

+0

Muy extraño, en mi administrador de SQL Server, el nombre de la columna es "LastName" al igual que lo que he escrito. si solo comento la última línea que funciona, FirstName es correcto y deletreé LastName de la misma manera. – KHAN

Respuesta

6

significa que su tabla de datos no es encontrar nombre de la columna Apellidos que está en su base de datos ..

en su caso, usted llenar su conjunto de datos con DS2 ..

Program.da2.Fill(Program.ds2); 

y luego se va a enlazar su fuente de datos al 'programa' como esto ..

Program.tblNamesBS2.DataSource = Program.ds.Tables[0]; 

debe recibir este ..

Program.tblNamesBS2.DataSource = Program.ds2.Tables[0]; 

porque debajo de la línea está buscando el valor de Program.tblNamesBS2 que está vinculado a 'ds' y es por eso que la columna no está en 'ds'.

customerfirstname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "FirstName"));  
    customerlastname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "LastName")); 
+0

¿Por qué sería esto? puede encontrar FirstName y LastName escrito correctamente. – KHAN

5

También se encontrará con este error si se vincula a un objeto NULL.

0

Tuve el mismo problema y fue porque las columnas en ambas tablas tenían los mismos nombres de columna. Por ejemplo:

  1. Mi nombre de base de datos era Assets;
  2. El primer nombre de tabla era Property y el segundo nombre de tabla era Plants;
  3. Los primeros nombres de columna en ambas tablas fueron asset_number; Dio el error que describe arriba, pero el mío dijo asset_number.

Solución: He cambiado los nombres de columna en mi mesa Plants-asset_number1 y luego no tuvo ningún problema. (Tuve que eliminar todas mis columnas antiguas en Plants para rehacer las nuevas columnas.)

Cuestiones relacionadas