是否可以自动检索数据库中的数据?

时间:2013-07-19 12:32:24

标签: c# asp.net

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

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());
}

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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;
}

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

*我没有编译代码。