2017-10-12 82 views
0

我有这样的方法,使用网络服务来我的桌面应用程序连接到Oracle数据库:重新排序的GridView列(填充从数据库)

public List<Persona> ListaPersona() 
    { 
     List<Persona> personas = new List<Persona>(); 
     Persona persona; 
     Conexion con = new Conexion(); 
     OracleCommand cmd = con.OracleConexion().CreateCommand(); 
     cmd.CommandText = "select * from persona"; 
     DataSet ds = new DataSet(); 
     OracleDataAdapter adapter = new OracleDataAdapter(cmd); 
     adapter.Fill(ds); 
     foreach (DataRow fila in ds.Tables[0].Rows) 
     { 
      persona = new Persona(); 
      persona.IdPersona = Int32.Parse(fila["IDPERSONA"].ToString()); 
      persona.Rut = Int32.Parse(fila["RUT"].ToString()); 
      persona.DigiVeri = fila["DIGIVERI"].ToString(); 
      persona.Nombre = fila["NOMBRES"].ToString(); 
      persona.ApPaterno = fila["APPATERNO"].ToString(); 
      persona.ApMaterno = fila["APMATERNO"].ToString(); 
      persona.Edad = Int32.Parse(fila["EDAD"].ToString()); 
      persona.FechaNacimiento = fila["FECHA_NACIMIENTO"].ToString(); 
      persona.Genero = fila["GENERO"].ToString(); 
      persona.Correo = fila["CORREO"].ToString(); 
      persona.Telefono = Int32.Parse(fila["TELEFONO"].ToString()); 
      persona.Direccion = fila["DIRECCION"].ToString(); 
      persona.Comuna = Int32.Parse(fila["COMUNA"].ToString()); 
      persona.Contrasena = fila["CONTRASENA"].ToString(); 
      persona.Empresa = Int32.Parse(fila["EMPRESA"].ToString()); 
      persona.Cargo = Int32.Parse(fila["CARGO"].ToString()); 
      persona.Activo = Int32.Parse(fila["ACTIVO"].ToString()); 
      persona.Expositor = Int32.Parse(fila["EXPOSITOR"].ToString()); 
      persona.Personal = Int32.Parse(fila["PERSONAL"].ToString()); 
      persona.FechaIngreso = fila["FECHA_INGRESO"].ToString(); 
      personas.Add(persona); 
     } 
     return personas; 
    } 

它返回所有在系统上注册的用户列表,和我展示他们在gridview上。它显示完美的数据,但以某种随机顺序,我不知道为什么,所以我不想重新排序gridview的colums。

这是windowsform加载代码:

public testLista() 
    { 
     InitializeComponent(); 
     WebService.ServicioClient s = new WebService.ServicioClient(); 
     dataGridView1.DataSource = s.ListaPersona().ToList(); 

    } 
+0

我试过dataGridView.Columns [“ColumnName”]。DisplayIndex = 1;与所有列,但它与其中一些工作。 – NEURO

+0

记录栏是什么意思? – 2017-10-12 05:39:04

+0

“记录”是什么意思?我没有说我相信。如果你的意思是“重新排序”,我的意思是改变列顺序。 – NEURO

回答

0

您可以手动映射。在你的DataGridView中,你会看到右上角的一个三角形。在那里你可以根据你喜欢的顺序手动映射它。 (对不起,我不能评论,因为我需要50个声望,我只有11个)

+0

您是否知道是否有重新排序数据集的方法?我的意思是,数据集按词汇自动排序,这就是为什么即时获取数据的方式,我实际上不想 – NEURO

+0

,这很奇怪。我使用的模式与您的模式几乎相同(获取DataTable,然后对每行进行foreach并将每个图映射到项目列表的属性),并且我总是会获得与该类相同的精确排列(在您的情况下,Persona)所以我不知道如何安排它,而是手动将它映射到窗体上的datagridview – NoobProgger