0

到目前为止,我所拥有的只是我首先使用列表视图检索数据并将其放入指定的文本框中,我想要的是当我检索或搜索数据时,它会自动将其放入指定的文本框中的表格中

private void btnretrieve_Click(object sender, EventArgs e)
{
        con.Open();
        SqlCommand cmd = new SqlCommand("Select * from Information", con);
        SqlDataAdapter dta = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();

        dta.Fill(dt);
        con.Close();
        lvwcontacts.Items.Clear();

        for (int index = 0; index < dt.Rows.Count; index++)
        {
            lvwcontacts.Items.Add(dt.Rows[index]["CONTACT_ID"].ToString());
            lvwcontacts.Items[index].SubItems.Add(dt.Rows[index]["CONTACT_NAME"].ToString());
            lvwcontacts.Items[index].SubItems.Add(dt.Rows[index]["CONTACT_ADDRESS"].ToString());
            lvwcontacts.Items[index].SubItems.Add(dt.Rows[index]["CONTACT_NO"].ToString());
}
4

2 回答 2

0

使用 aListView你将无法做到这一点。但是,另一种方法可能是这样的:

lvwcontacts.Items.AddRange(
    from r in dt.Select()
    select new ListViewItem(r.ItemArray.Cast<string>().ToArray())
);

但是,您还需要将您的SELECT声明更改为:

Select CONTACT_ID, CONTACT_NAME, CONTACT_ADDRESS, CONTACT_NO from Information
于 2013-07-19T12:37:31.977 回答
0

你可以把结果放在一个类中。首先,您需要创建一个联系人类。

Class Contact
{
    '.. containing ID, Name, Address, No
}

然后我建议你把所有的逻辑都拉出来,放到一个函数中。在那里,您将填充对象列表,而不是填充列表视图。

Public List<Contact> GetContacts()
{
    List<Contact> contactList = new List<Contact>();

    con.Open();
        SqlCommand cmd = new SqlCommand("Select * from Information", con);
        SqlDataAdapter dta = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();

        dta.Fill(dt);
        con.Close();


    for (int index = 0; index < dt.Rows.Count; index++)
    {
        Contact newContact = new Contact();

        newContact.ID = dt.Rows[index]["CONTACT_ID"];
        newContact.Name = dt.Rows[index]["CONTACT_NAME"];
        newContact.Address = dt.Rows[index]["CONTACT_ADDRESS"];
        newContact.NO = dt.Rows[index]["CONTACT_NO"];

        contactList.Add(newContact);
    }

    return contactList;
}

然后,您可以将列表中的数据放在您想要的任何位置。

* 我还没有编译代码。

于 2013-07-19T13:45:42.833 回答