问题  将多个txt文件导入datagriview

卡姆斯

新成员
已加入
2021年1月13日
留言内容
3
编程经验
Beginner
嗨,我在练习中有几个txt文件,我在寻找注释。导入后,将它们显示在datagriview中,然后将其注册到数据库中。
在导入每个文件的第一行时,不同的文件具有相同的配置。
谢谢
 
由主持人最后编辑:

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,524
地点
悉尼,澳大利亚
编程经验
10+
网格并不真正相关。您当然可以在保存之前在网格中显示数据,但这实际上并不是过程的一部分。如果用户要在保存之前对数据进行任何修改,他们也可以通过网格进行修改。

什么 you ought to do is to read the data into a DataTable, which you can then bind to a DataGridView via a BindingSource. You can then save the data to your database using a data adapter.

As for reading the data, there are different ways that could be done. You could use an OleDbDataAdapter or OleDbDataReader to populate the DataTable directly or you could use a TextFieldParser or some third-party component to read the data and then populate the DataTable manually.

我建议您进行更多研究,然后在遇到更多具体问题时与我们联系。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,524
地点
悉尼,澳大利亚
编程经验
10+
当我编辑您的第一篇文章时,我说只有英文的文章是可以接受的,并且,当我为您翻译该文章时,所有其他非英文的文章都将被删除。因此,您的第二条帖子已被删除。请仅以英文发布。
 

卡姆斯

新成员
已加入
2021年1月13日
留言内容
3
编程经验
Beginner
好的,我有两个类,分别是form1和Helper。我遇到的代码是问题,我只能导入一个文件,而不能导入多个文件。表单代码:
Form:
 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; WindowsFormsApp1 namespace {public partial class Form1: Form {public Form1 () {InitializeComponent (); } Table DataTable = new DataTable (); private void Form1_Load (object sender, EventArgs e) {} private void btn_import_Click (object sender, EventArgs e) {OpenFileDialog openFileDialog1 = new OpenFileDialog {Title = "Browse file", CheckFileExists = true, CheckPathExists = true , DefaultExt ", Filter =" txt files (* .txt) | * .txt ", FilterIndex = 2, RestoreDirectory = true, ReadOnlyChecked = true, ShowReadOnly = true,}; if (openFileDialog1.ShowDialog () == DialogResult.OK) {foreach (string file in openFileDialog1.FileNames) {textBox1. Text = openFileDialog1.FileName; Helper.file = textBox1.Text;} dataGridView1.DataSource = Helper.DataTableFromTextFile (textBox1.Text);}} private empty label1_Click (object sender, EventArgs e) {}}} [/ CODE ] [CODE lang = "csharp" title= "Helper"] using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.IO; WindowsFormsApp1 namespace {Class Aid {public static string file; public static DataTable DataTableFromTextFile (string location, char delimiter = '\ t') {DataTable result; location = file; string [] linearay = File.ReadAllLines (location); result = FromDataTable (linear, delimiter); return result; } Private static DataTable FromDataTable (string [] linearay, char delimiter) {DataTable dt = new DataTable (); AddCoulumnToTable (linear, delimiter, ref dt); AddRowToTable (linear, delimiter, ref dt); return dt; } private static void AddRowToTable (string [] Values, char delimiter, ref DataTable dt) {for (int i = 0; i <Values.Length; i ++) {string [] values = .Split values (delimiter); DataRow dr = dt.NewRow (); for (int j = 0; j <values.Length; j ++) {dr [j] = values [j]; } dt.Rows.Add (dr); }} private static void AddCoulumnToTable (string [] columnCollectioi, char delimiter, ref DataTable dt) {string [] colones = columnCollectioi [0] .Split (delimiter); foreach (columnName string in colones) {DataColumn dc = new DataColumn (); dt.Columns.Add (dc); } } } }
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,524
地点
悉尼,澳大利亚
编程经验
10+
请重新发布您的代码,并使用换行符正确设置其格式。另外,请仅张贴相关代码。很少需要发布名称空间导入,这表明您并没有真正确定与该问题相关的代码。您发布的每一个无关的代码使我们更难识别问题,从而使您获得所需帮助的可能性降低。
 

卡姆斯

新成员
已加入
2021年1月13日
留言内容
3
编程经验
Beginner
好的,我有两个类,分别是form1和Helper。我遇到的代码是问题,我只能导入一个文件,而不能导入多个文件。表单代码:
C#:
 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
WindowsFormsApp1 namespace {
        public partial class Form1: Form {
                public Form1 () {
                    InitializeComponent ();
                }
            Table DataTable = new DataTable ();
             private void btn_import_Click (object sender, EventArgs e)
             {
                 OpenFileDialog openFileDialog1 = new OpenFileDialog {
                     Title = "Browse file",
                     CheckFileExists = true,
                     CheckPathExists = true ,
                     DefaultExt ", Filter =" txt files (* .txt) | * .txt ",
                         FilterIndex = 2,
                     RestoreDirectory = true,
                     ReadOnlyChecked = true,
                     ShowReadOnly = true,
                 };
                 if (openFileDialog1.ShowDialog () == DialogResult.OK) {
                     foreach (string file in openFileDialog1.FileNames)
                     {
                         textBox1. Text = openFileDialog1.FileName;
                         Helper.file = textBox1.Text;
                     }
                     dataGridView1.DataSource = Helper.DataTableFromTextFile (textBox1.Text);
                 }
             }
            private empty label1_Click (object sender, EventArgs e) {
              
            }
        }
}
Helper:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.IO;
WindowsFormsApp1 namespace {
    Class Aid {
        public static string file;
        public static DataTable DataTableFromTextFile (string location, char delimiter = '\ t')
        {
            DataTable result;
            location = file;
            string [] linearay = File.ReadAllLines (location);
            result = FromDataTable (linear, delimiter);
            return result;
        }
        Private static DataTable FromDataTable (string [] linearay, char delimiter)
        {
            DataTable dt = new DataTable ();
            AddCoulumnToTable (linear, delimiter, ref dt);
            AddRowToTable (linear, delimiter, ref dt);
            return dt;
        }
        private static void AddRowToTable (string [] Values, char delimiter, ref DataTable dt)
        {
            for (int i = 0; i <Values.Length; i ++)
            {
                string [] values = .Split values (delimiter);
                DataRow dr = dt.NewRow ();
                for (int j = 0; j <values.Length; j ++)
                {
                    dr [j] = values [j];
                }
                dt.Rows.Add (dr);
            }
        }
        private static void AddCoulumnToTable (string [] columnCollectioi, char delimiter, ref DataTable dt)
        {
            string [] colones = columnCollectioi [0] .Split (delimiter);
            foreach (columnName string in colones)
            {
                DataColumn dc = new DataColumn ();
                dt.Columns.Add (dc);
            }
        }
    }
}
 
最佳 底部