Сохранение в текстовый файл с формами - PullRequest
2 голосов
/ 13 декабря 2011

Итак, у меня есть графический интерфейс, использующий MSVS 2010, и я создаю много форм.

Моя основная форма открывает мой текстовый файл «база данных» и объединяет нужные данные в другой открытыйфайл.Если открытый файл содержит данные, которые не совпадают в файле базы данных, я хотел бы добавить эти данные в файл базы данных.

С учетом сказанного, когда нажимается кнопка «dataBaseSaveButton_Click», появляется новая форма с текстовыми полями: Machine, Name, PTP Name, CMP Name, T-Width,Шаг питателя .Большинство полей будут заполнены автоматически, а остальные пользователь должен будет ввести.

Также в форме есть еще одна кнопка «Сохранить».Теперь в этой форме кнопка «Сохранить» фактически возьмет данные в текстовые поля и откроет соответствующий файл (файл базы данных) и сохранит его (обновит базу данных) в определенном формате.

«Сохранить»В базу данных »форма выглядит следующим образом:

Save To Data Base Form

Мой код из формы main выглядит следующим образом (при нажатии кнопки):

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 Ответ

1 голос
/ 13 декабря 2011

Вы можете «технически» вставить в файл, но вам, как правило, приходится копировать весь файл каждый раз, когда вы что-то вставляете.Точнее, это не настоящая вставка, потому что файловая система не поддерживает вставки .В сети есть несколько примеров , но я бы порекомендовал вам избежать всей катастрофы и использовать либо встроенную базу данных, либо файлы XML.

Я бы настоятельно рекомендовал вам использовать базу данных SQLite и воспользоваться преимуществами ADO .NET Entity Framework, но если вам это сложно, вы можете создавать простые XML-файлы.

ЗдесьВот несколько примеров:

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...