持久化数据库

时间:2012-12-05 13:05:53

标签: c# persistence

我有两个列表和一个列表框,列表分别是各自的类,列表框位于Form1上。每个列表都由GUI添加,其名称为拾取列表的FrmPickups和列表的FrmVisits。

我的问题是,当我将数据添加到列表中时,如何将其存储到数据库中以便在项目启动时重新加载,以及如何在启动时将其加载到列表框中。

一些代码如下:

数据按如下方式添加到列表中:

        theVisit.name = txtName.Text;
        theVisit.address = txtAddress.Text;
        theVisit.arrival = DateTime.Parse(txtArrival.Text);
        theVisit.Lat = Double.Parse(txtLat.Text);
        theVisit.Lon1 = Double.Parse(txtLong.Text);
        theVisit.type = "Visit";

列表框内容添加在以下

 /*
         * Update the list on this form the reflect the visits in the list
         */
        lstVisits.Items.Clear();
        //Clear all the existing visits from the list

        List<String> listOfVis = theList.listVisits();
        //Get a list of strings to display in the list box

        List<String> listOfpic = thePickup.listPickups();
        //Get a list of strings to display in the list box

        lstVisits.Items.AddRange(listOfVis.ToArray());
        //Add the strings to the listBox. Note to add a list of strings in one go we have to 
        //use AddRange and we have to use the ToArray() method of the list that we are adding

        lstVisits.Items.AddRange(listOfpic.ToArray());
        //Add the strings to the listBox. Note to add a list of strings in one go we have to 
        //use AddRange and we have to use the ToArray() method of the list that we are adding

1 个答案:

答案 0 :(得分:0)

与大多数编程问题一样,有一百万种方法可以做到这一点。如果您可以控制数据库设计,则可以考虑使用blob或image列来存储列表。您可以利用C#中的序列化并将原始字节填充到该列中。从sql查询的角度来看,这将无法查询列表的详细信息。 关于在启动时加载,你将从列中获取原始字节,反序列化它们并将它们附加到表单的控件上。