【问题标题】:Reorder GridView Columns (filled from database)重新排序 GridView 列(从数据库填充)
【发布时间】:2018-03-23 20:03:33
【问题描述】:

我有这种方法使用 web 服务将我的桌面应用程序连接到 oracle 数据库:

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 的列。

这是windowsform加载代码:

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

    }

【问题讨论】:

  • 我试过 dataGridView.Columns["ColumnName"].DisplayIndex = 1;与所有列一起使用,但它与其中一些列一起使用。
  • 记录栏是什么意思?
  • “记录”是什么意思?我没有说我相信。如果你的意思是“重新排序”,我的意思是改变列的顺序。
  • 数据集没有 SetOrdinal 方法

标签: c# winforms datagridview


【解决方案1】:

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

【讨论】:

  • 你知道是否有重新排序数据集的方法吗?我的意思是,数据集按词汇自动排序,这就是为什么我以我不想的方式获取数据
  • 其实很奇怪。我使用的模式与您的几乎相同(获取 DataTable,然后 foreach 每一行并将每一行映射到您的项目列表的属性),并且我总是得到与类相同的列排列(在您的情况下,Persona)所以我不知道如何安排它,而是手动将它映射到表单上的 datagridview
猜你喜欢
  • 1970-01-01
  • 2013-08-16
  • 1970-01-01
  • 2014-05-12
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多