【发布时间】:2012-01-19 13:47:30
【问题描述】:
所以我有一个使用 MSVS 2010 的 GUI,我正在创建许多表单。
我的 main 表单打开我的文本文件“数据库”并将正确的数据连接到另一个打开的文件。如果打开的文件包含与数据库文件不匹配的数据,那么我想将该数据添加到数据库文件中。
话虽如此,当单击“dataBaseSaveButton_Click”按钮时,将弹出一个新表单,其中包含以下文本框:机器、名称、PTP 名称、CMP 名称、T-Width、Feeder Pitch。大多数字段将自动填充,而其他字段则需要用户输入。
表单中还有另一个“保存”按钮。现在,在这个表单上,保存按钮实际上会获取文本框中的数据并打开适当的文件(数据库文件)并以某种格式保存(更新数据库)。
“保存到数据库”表单如下所示:
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”(关闭)不保存到数据库。
【问题讨论】:
-
在用户单击保存按钮后,您可以创建一个枚举,按照您想要的顺序保存数据库字段的结构。然后捕获的任何数据都将该数据存储在 List
或 Dictionary 这是相当简单的过程.. -
你想追加到文件还是在中间的某个地方插入?此外,如果您已经认为这是一个数据库文件,那么您是否考虑过像 SQLite 这样的嵌入式数据库(它完全基于文件)?
-
@Lirik:我想在中间插入。如果机器在文本框中标记为“CP4”,我想在文本文件中找到“CP4”行之后附加。其他机器可能是:CP6、CP7、IP2A。我考虑过使用 ACTUAL 数据库来做这件事,但我对它们一无所知:(
-
+1 了解具体细节和图片。
标签: c# winforms streamreader streamwriter