Visual C# - 能记住用户输入的简单程序吗?

时间:2012-03-20 21:27:43

标签: c# input save store keystrokes

我是C#的新手,我正在努力开始。

我能够用一些按钮和东西制作一个简单的表单程序。但这是我的问题:

如何 - 或者在程序中存储用户输入的最佳做法是什么?

假设我创建了一个简单的程序,用户可以通过文本框输入文本行,并通过按钮将其“添加”到列表中。 当用户关闭并再次打开程序时,它应该记住他输入的每一行。 (就像期刊一样)。

这是如何最好地完成的?我搜索过谷歌,但它根本没有帮助我。我应该使用数据库吗?保存并读取文本文件? (ini / xml?)

这个简单的程序需要安装吗?或者它可以作为可执行的exe文件工作 - 并仍然在用户计算机上保存/读取?

致以最诚挚的问候(对不起我的英语)。

4 个答案:

答案 0 :(得分:1)

目前最简单的选择是使用XML文件。我不会尝试ini文件,除非你真的需要特定的东西。

如果您知道只需要存储来自单个文本输入区域的数据,那么文本文件是一个不错的选择。

XML允许您通过序列化直接从对象存储和检索数据。

不 - 简单的可执行文件不需要安装程序 - 但如果您不创建安装程序,则无法轻松添加快捷方式等内容。

答案 1 :(得分:1)

这种最简单,最易扩展的方式是使用一些嵌入式数据库。 ,就个人而言,会选择Sqlite。在下载部分,您也可以找到.NET的二进制文件。

还有很多其他可能的选择,但这只是会选择从我的问题中提供的信息。

希望这有帮助。

答案 2 :(得分:0)

如果你是初学者,你就有了正确的想法 您可以将数据存储在text / xml文件或数据库中 你可以像@dice指出的那样使用XML,但是开始编程到XML可能会让人望而生畏 我建议去文本文件存储,并了解事情是如何工作的。

这里是great article以IO编码开始的。稍后改变这个

string[] lines = {"First line", "Second line", "Third line"};

指向用户输入。

答案 3 :(得分:0)

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace WindowsFormsApplication1
    {
        class ConnectionManager
        {
            public static SqlConnection getConnection()
            {
                try {
                    String conn = ConfigurationManager.ConnectionStrings["Test"].ToString();
                    SqlConnection sc = new SqlConnection(conn);
                    return sc;
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                    return null;
                }
            }
        }
    }


 private DataTable getData()
        {
            try
            {
                SqlConnection conn = ConnectionManager.getConnection();
                conn.Open();
                String sql = "SELECT * FROM Appliance_Manufacturers";
                SqlCommand cmd = new SqlCommand(sql, conn);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                conn.Close();
                return dt;
            }catch(Exception e)
            {
                MessageBox.Show(e.Message);
                return null;
            }
        }

        private bool addManufacture(String name)
        {

            try
            {
                SqlConnection con = ConnectionManager.getConnection();
                con.Open();
                string query = "INSERT INTO Appliance_Manufacturers (Manufacturer) VALUES('" + name + "')";
                SqlCommand cmd = new SqlCommand(query, con);
                int status = cmd.ExecuteNonQuery();
                con.Close();
                return (status == 1);
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
                return false;
            }
        }
    }

intvaxis