保存到包含表单的文本文件

时间:2011-12-13 17:24:38

标签: c# winforms streamreader streamwriter

所以我有一个使用MSVS 2010的GUI,我正在创建许多表单。

我的 main 表单打开我的文本文件“database”,并将正确的数据汇总到另一个打开的文件中。如果打开的文件中的数据与数据库文件中的数据不匹配,那么我想将该数据添加到数据库文件中。

话虽如此,当单击按钮“dataBaseSaveButton_Click”时,将弹出一个新表单,其中包含文本框: 计算机,名称,PTP名称,CMP名称,T宽度,进纸器间距< / EM> 即可。大多数字段将自动填充,而其他字段将由用户输入。

同样在表格中还有另一个“保存”按钮。现在,在此表单上,保存按钮实际上将获取文本框中的数据并打开正确的文件(数据库文件)并以特定格式保存(更新数据库)。

“保存到数据库”表单如下所示:

Save To Data Base Form

表单中的代码如下所示(单击按钮时):

private void dataBaseSaveButton_Click(object sender, EventArgs e)
{
    int unknownCP4Counter = theCP4UnknownList.Distinct().Count();

    foreach (var line in theCP4UnknownList.Distinct())
    {
        var splitUnknowns = line.Split(' ');

        KTS_Save saveForm = new KTS_Save("CP4", splitUnknowns[0], splitUnknowns[1], splitUnknowns[3], splitUnknowns[4], openDataBase2File.FileName, unknownCP4Counter);

        saveForm.ShowDialog();

        unknownCP4Counter--;
    }
}

保存到数据库表单的代码如下所示:

private string _Machine;
private string _Name;
private string _PtpName;
private string _TapeWidth;
private string _FeederPitch;
private string _DataBaseFileName;
public KTS_Save()
{
    InitializeComponent();
}

public KTS_Save(string Machine, string Name, string PtpName, string TapeWidth, string FeederPitch, string DBFileName, int Counter)
{
    InitializeComponent();

    _Machine = Machine;
    _Name = Name;
    _PtpName = PtpName;
    _TapeWidth = TapeWidth;
    _FeederPitch = FeederPitch;
    _DataBaseFileName = DBFileName;

    machineTextBox.Text = _Machine;
    nameTextBox.Text = _Name;
    ptpNameTextBox.Text = _PtpName;
    tapeWidthTextBox.Text = _TapeWidth;
    feederPitchTextBox.Text = _FeederPitch;
    counterLabel.Text = Counter.ToString();
}

private void dataBaseSaveButton_Click(object sender, EventArgs e)
{
    //This is where I need help.
}

我需要帮助的是将所有文本框数据打印到已存在的文件中。

我知道这可能不是最有效的做事方式,所以如果您有任何建议请告诉我! :)

(哦,是的..)

我希望程序 运行 像这样(或类似):

  • 点击主表单,点击按钮,系统会弹出保存到数据库表单。
  • 用户将输入相应的字段(文本框)。
  • 用户将单击“保存到数据库”按钮,数据将写入通过主窗体传入的文本文件。
    • 否则,用户将点击右上角的“X”(关闭)以不保存到数据库。

1 个答案:

答案 0 :(得分:1)

您可以“技术上”插入文件,但基本上每次插入内容时都必须复制整个文件。更确切地说:它不是真正的插入,因为file system does not support inserts。有multiple examples online,但我实际上建议您避免整个崩溃,并使用嵌入式数据库或XML文件。

我强烈建议您使用SQLite数据库并利用ADO .NET实体框架,但如果这对您来说很麻烦,那么您可以执行简单的XML文件。

以下是一些例子:

祝你好运。