[英]Saving and reading a file into a data table - C#
我对此很陌生,所以请多多包涵。 我正在尝试创建一个可以打开文件,加载文件然后将数据填充到表中的应用程序。 我已经设法将其硬编码到所需的测试文件中,但是现在需要能够打开具有相同扩展名的任何文件。
到目前为止,我已经包含了代码。 感谢有人可以指出我正确的方向:)谢谢,乔
OpenFileDialog ofd = new OpenFileDialog();
private void Button3_Click(object sender, EventArgs e)
{
ofd.Filter = "evtx|*.evtx"; //Only allows evtx file types to be seen and opened
if (ofd.ShowDialog() == DialogResult.OK) //Opens the file dialog on button click
{
this.fileNameTextBox.Text = ofd.FileName;
saveFileNameTextBox.Text = ofd.SafeFileName;
}
}
private void loadFileButton_Click(object sender, EventArgs e)
{
var dt = new DataTable();
dt.Columns.Add("Level");
dt.Columns.Add("Logname");
dt.Columns.Add("Event ID");
dt.Columns.Add("Date and Time");
using (var reader = new EventLogReader(@"C:\Users\Jason\Desktop\Event logs\Security.evtx", PathType.FilePath))
{
EventRecord record;
while ((record = reader.ReadEvent()) != null)
{
using (record)
{
dt.Rows.Add(record.Level, record.LogName, record.RecordId, record.TimeCreated.Value.ToString("dd/MM/yyyy tt:hh:mm:ss"));
}
}
}
tblLogViewer.DataSource = dt;
}
如果我了解您的问题所在,则提示您在Button3_Click()
中Button3_Click()
以下文件:
if (ofd.ShowDialog() == DialogResult.OK) //Opens the file dialog on button click
{
this.fileNameTextBox.Text = ofd.FileName;
saveFileNameTextBox.Text = ofd.SafeFileName;
}
...但是然后在loadFileButton_Click()
您正在使用其他路径来构造EventLogReader
...
using (var reader = new EventLogReader(@"C:\Users\Jason\Desktop\Event logs\Security.evtx", PathType.FilePath))
{
您已经将所选文件的路径保存到fileNameTextBox.Text
,因此只需将该属性传递给EventLogReader
构造函数即可。
using (var reader = new EventLogReader(fileNameTextBox.Text, PathType.FilePath))
{
请注意, loadFileButton_Click
假定ofd
先前已显示并接受(未取消)。 不知道您的不同按钮是什么,最好在成功提示输入文件后立即创建并使用EventLogReader
。
if (ofd.ShowDialog() == DialogResult.OK) //Opens the file dialog on button click
{
this.fileNameTextBox.Text = ofd.FileName;
saveFileNameTextBox.Text = ofd.SafeFileName;
using (var reader = new EventLogReader(ofd.FileName, PathType.FilePath))
{
// Use reader...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.