[英]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
Change your query to SELECT ID, RemainingDept FROM Dept_Tbl ORDER BY RemainingDept DESC
. 将您的查询更改为
SELECT ID, RemainingDept FROM Dept_Tbl ORDER BY RemainingDept DESC
。
Get rid of the sorting code 摆脱排序代码
Change the read line to: liste.Add(dr["ID"] + " " + dr["RemainingDept"]);
将读取行更改为:
liste.Add(dr["ID"] + " " + dr["RemainingDept"]);
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);
}
}
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.