Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以及在何处存储工具箱工具(C#Visual studio 2013 Ultimate)?_C#_Visual Studio - Fatal编程技术网

如何以及在何处存储工具箱工具(C#Visual studio 2013 Ultimate)?

如何以及在何处存储工具箱工具(C#Visual studio 2013 Ultimate)?,c#,visual-studio,C#,Visual Studio,我是一个初级程序员,为我的IT文凭做我的第一个程序。因此,请原谅我可能犯的任何业余错误。该程序是一个C#Windows窗体应用程序 编辑:这是我的最后一个项目 我的程序的功能之一是让用户创建一个清单。为了做到这一点,我决定使用一个按钮将清单项目添加到流程布局面板上。但我被困在如何以及在哪里储存它的问题上 编辑:他们可以保存检查表。当他们重新打开程序时 应该能够再次访问它 我查找了一些相关的主题,得到了以下两个结果:作为外部文件或在数据库中。考虑到我的时间框架(2020年6月底),外部文件的事情感

我是一个初级程序员,为我的IT文凭做我的第一个程序。因此,请原谅我可能犯的任何业余错误。该程序是一个C#Windows窗体应用程序

编辑:这是我的最后一个项目

我的程序的功能之一是让用户创建一个清单。为了做到这一点,我决定使用一个按钮将清单项目添加到流程布局面板上。但我被困在如何以及在哪里储存它的问题上

编辑:他们可以保存检查表。当他们重新打开程序时 应该能够再次访问它

我查找了一些相关的主题,得到了以下两个结果:作为外部文件或在数据库中。考虑到我的时间框架(2020年6月底),外部文件的事情感觉有点太乏味了,而且很多人似乎不同意将对象存储在数据库中

编辑:我正在使用内置的MS SQL数据库

那么,回到我的问题:我的程序如何以及在哪里存储用户将要制作的所有检查表


提前谢谢

这将让你走上“视情况而定”的美妙答案之路。因为这是一堂课的家庭作业,我会问讲师是否需要在应用程序重启之间存储它

如果你这样做了,数据库就远远超出了你的需要。使用序列化和平面文件更容易,如果您需要在应用程序重新启动后继续运行,则除了对驱动器的写访问之外,它没有其他要求


使用XML或JSON,您可以将数据类序列化为文本字符串,然后将文本存储在文件中。要加载,您需要反转函数并将数据填充到应用程序中。

您可以使用一些易于配置的数据库,如Mongodb将列表存储在其中。 尽管构建了模型,它还是将其保存为Bzon文件(json)

这家伙很好地解释了如何在WinForm应用程序中使用MongoDb CRUD操作:

如果您只想存储用户创建的项目,可以使用

首先,通过步骤
Project->Properties->Settings
打开
Settings
,并添加一个新的设置“CheckList”

然后参考下面的演示进行读/写设置

string strlist = "";

private void btAdd_Click(object sender, EventArgs e)
{
    checkedListBox1.Items.Add(textBox1.Text);
}

private void Form1_Load(object sender, EventArgs e)
{
    strlist = Properties.Settings.Default.CheckList;
    if (Properties.Settings.Default.CheckList != "")
    {
        List<string> list = Properties.Settings.Default.CheckList.Split('|').ToList();
        for (int i = 0; i < list.Count - 1; i++)
        {
            checkedListBox1.Items.Add(list[i]);
        }
    }
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    strlist = "";
    foreach(string i in checkedListBox1.Items)
    {
        strlist += i + "|";
    }

    Properties.Settings.Default.CheckList = strlist;
    Properties.Settings.Default.Save();
}
string strlist=“”;
私有void btAdd_单击(对象发送者,事件参数e)
{
checkedListBox1.Items.Add(textBox1.Text);
}
私有void Form1\u加载(对象发送方、事件参数e)
{
strlist=Properties.Settings.Default.CheckList;
如果(Properties.Settings.Default.CheckList!=“”)
{
List List=Properties.Settings.Default.CheckList.Split(“|”).ToList();
for(int i=0;i
测试演示:


为什么要使用VS 2013?快速且肮脏。编写一个类来保存数据。当应用程序关闭时序列化为json存储文件,加载所述文件,并在应用程序打开时反序列化。不过,你的问题没有好的答案。@mjwills好吧,那没用。但是如果你需要知道的话,讲师告诉我们具体使用2013。不要以此来评判我。我有一辆汽车。除此之外,你能给我一些想法吗?如果你已经有了一个数据库,那就把它存储在那里。如果不是,那么使用文件似乎是明智的。您说存储用户将要制作的所有检查表“-这是否意味着您正在重新加载所有以前的检查表,或者只是存储“当前”检查表?@TonyHopkinson谢谢。我来试试。实际上是最后一个项目。我的问题还包括如何。如果我要使用数据库,我如何将我的工具放入其中?是否有某种数据类型我应该使用?如果您想进一步了解mongodb,我推荐Tim Corey的一个视频:使用该类型而不是
字符串
类型来存储/检索字符串项。@JQSOFT是的,这是一个更好的选择。