Visual C#——一个可以记住用户输入的简单程序
本文关键字:用户 输入 程序 简单 一个 Visual | 更新日期: 2023-09-27 18:28:39
我是C#的新手,正在努力取得一个良好的开端。
我可以用一些按钮和其他东西制作一个简单的表单程序。但我的问题是:
如何或什么是在程序中存储用户输入的最佳实践?
假设我创建了一个简单的程序,用户可以通过文本框输入文本行,然后通过按钮将其"添加"到列表中。当用户关闭并再次打开程序时,它应该记住他输入的每一行。(就像一本日记)。
这是如何最好地完成的?我搜索过谷歌,但它对我没有任何帮助。我应该使用数据库吗?是否保存并读取到文本文件?(ini/xml?)
这个简单的程序需要安装吗?或者它可以作为一个可执行的exe文件工作,并且仍然可以在用户计算机上保存/读取?
致以最良好的问候(对不起我的英语)。
到目前为止,最简单的选项是使用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;
}
}
}