简体   繁体   English

从访问和列表框中获取数据C#

[英]Take data from access and to listbox c#

i write a program about customer registiriation. 我写了一个关于客户注册的程序。 customers inf. 客户信息 saved the txt files. 保存了txt文件。 and their depts are saved access database. 和他们的部门保存访问数据库。 i want to sort depts small to large . 我想按大小排序部门。 i can sorting depts actually but , i wanna sort depts with ıd s of cutomers. 我实际上可以排序部门,但是,我想用ıd的用户来对部门进行排序。 how can i do? 我能怎么做?

private void button2_Click(object sender, EventArgs e)
    {
        //listBox3.Items.Clear();
        OleDbCommand komut = new OleDbCommand();

        conn.Open();


        OleDbCommand cmd = new OleDbCommand(" SELECT RemainingDept FROM Dept_Tbl  ", conn);


        OleDbDataReader dr = cmd.ExecuteReader();

        List<string> liste = new List<string>();


        while ((dr.Read()))
        {

            liste.Add(dr["RemainingDept"].ToString());

        }

        string[] A = liste.ToArray();

        int[] B;
        B = Array.ConvertAll<string, int>(A, int.Parse);

        int tmp;
        for (int i = 0; i <B.Length ; i++)
        {
            for (int j=B.Length-1; j>i; j--)
            {
                if (B[j - 1] > B[j])
                {
                    tmp = B[j - 1];
                    B[j - 1] = B[j];
                    B[j] = tmp;

                }
            }

        }


        listBox3.Items.Clear(); 
        for (int i = 0; i < B.Length; i++)
        {
            listBox3.Items.Add( B[i].ToString());
        }

        conn.Close();
    }
} 

    } 

在此处输入图片说明

Example: 例:

My listbox like this code: 我的列表框像这样的代码:

30 30

40 40

70 70

I wanna see listbox like: 我想看到类似的列表框:

2 30 2 30

1 40 1 40

3 70 3 70

  1. Change your query to SELECT ID, RemainingDept FROM Dept_Tbl ORDER BY RemainingDept DESC . 将您的查询更改为SELECT ID, RemainingDept FROM Dept_Tbl ORDER BY RemainingDept DESC

  2. Get rid of the sorting code 摆脱排序代码

  3. Change the read line to: liste.Add(dr["ID"] + " " + dr["RemainingDept"]); 将读取行更改为: liste.Add(dr["ID"] + " " + dr["RemainingDept"]);

1. Class approach: 1.课堂教学法:

public class Department
{
    public int ID { get; set; }
    public int RemainingDept { get; set; }
}

private void button2_Click(object sender, EventArgs e)
{

    List<Department> liste = new List<Department>();

    OleDbCommand cmd = new OleDbCommand("SELECT ID, RemainingDept FROM Dept_Tbl ORDER BY RemainingDept", conn);
    OleDbDataReader dr = cmd.ExecuteReader();

    while (dr.Read())
    {
        var dept = new Department()
        {
            ID = Convert.ToInt32(dr["ID"]),
            RemainingDept = Convert.ToInt32(dr["RemainingDept"]);
        };
        liste.Add(dept);
    }

    foreach(var nItem in liste)
    {
        listBox3.Items.Add(nItem.ID + " " + nItem.RemainingDept);
    }
}

2. Class-less approach: 2.无类方法:

Same result with much less code. 更少的代码就能获得相同的结果。

private void button2_Click(object sender, EventArgs e)
{
    OleDbCommand cmd = new OleDbCommand("SELECT ID, RemainingDept FROM Dept_Tbl ORDER BY RemainingDept", conn);
    OleDbDataReader dr = cmd.ExecuteReader();

    while (dr.Read())
        listBox3.Items.Add(dr["ID"] + " " + dr["RemainingDept"]);
}

Use this. 用这个。 It'll sort the data and concatenate the two fields together. 它将对数据进行排序并将两个字段连接在一起。 Convert it to the list, and display. 将其转换为列表,然后显示。 Skip the custom sorting. 跳过自定义排序。

OleDbCommand cmd = new OleDbCommand(" SELECT ID || ' ' || RemainingDept FROM Dept_Tbl ORDER BY RemainingDept", conn);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM