Visual C#——一个可以记住用户输入的简单程序

本文关键字:用户 输入 程序 简单 一个 Visual | 更新日期: 2023-09-27 18:28:39

我是C#的新手,正在努力取得一个良好的开端。

我可以用一些按钮和其他东西制作一个简单的表单程序。但我的问题是:

如何或什么是在程序中存储用户输入的最佳实践?

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

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

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

致以最良好的问候(对不起我的英语)。

Visual C#——一个可以记住用户输入的简单程序

到目前为止,最简单的选项是使用XML文件。除非你真的需要一些特定的东西,否则我不会尝试ini文件。

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

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

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

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

还有很多其他可能的选择,但这正是在掌握问题中提供的信息时会选择的。

希望这能有所帮助。

如果你是初学者,你就有了正确的想法
您可以将数据存储在text/xml文件或数据库中
正如@dice所指出的,您可以选择XML,但开始使用XML编程可能会让人望而却步
我建议使用文本文件存储,并了解它的工作原理。

这是一篇从IO编码开始的好文章。稍后更改此

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

以指向用户输入。

    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