小弟我最近在自學visual studio,要怎麼實現匯入功能啊?
還有,目前的食譜是我手動輸入上去的,如果我希望關掉程式再打開,仍然保留食譜,要怎麼做啊?
謝謝各位
(好想吃昇龍餃子)
跨視窗傳資料可以參考這篇:
https://dotblogs.com.tw/jeff-yeh/2010/01/04/12799
如果你希望關掉程式再打開,仍然保留食譜
可以用讀寫檔或資料庫讀寫的方式達成
C# 讀寫檔:
https://docs.microsoft.com/zh-tw/troubleshoot/dotnet/csharp/read-write-text-file
C# 資料庫(MariaDB):
可以參考我去年鐵人賽 Day21~Day25
裡面也有你需要的跨視窗用法
https://ithelp.ithome.com.tw/users/20120331/ironman/2817?page=3
這不是跨表單,別想太多,只是資料存在特定的地方
以下的例子是完全不使用資料庫,也不用NonSQL或ACCESS MDB,唯一動用到的只有newtonsoft的JSon(個人喜好罷了)
using System;
using System.Data;
using System.IO;
using System.Windows.Forms;
using Newtonsoft.Json;
namespace GridViewTest
{
public partial class FormX : Form
{
public FormX()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = 初始化表格();
讀檔();
}
private DataTable 初始化表格()
{
// 不動用資料庫的絕地方法
DataTable ret = new DataTable();
ret.Columns.Add(new DataColumn("餐名",typeof(string)));
ret.Columns.Add(new DataColumn("食材一",typeof(string)));
ret.Columns.Add(new DataColumn("食材二",typeof(string)));
ret.Columns.Add(new DataColumn("食材三",typeof(string)));
return ret;
}
private void 存檔()
{
DataTable dt = (DataTable)dataGridView1.DataSource;
File.WriteAllText("data.txt",JsonConvert.SerializeObject((DataTable)dataGridView1.DataSource));
}
private void 讀檔()
{
if (File.Exists("data.txt"))
{
var data = File.ReadAllText("data.txt");
dataGridView1.DataSource = JsonConvert.DeserializeObject<DataTable>(data);
}
}
private void 關閉視窗(object sender, FormClosingEventArgs e)
{
存檔();
}
}
}
使用平台: VisualStudio 2019 C#