Чтение из файла .txt, а затем экспорт данных в DataGridView
Я знаю, что это смешной вопрос, но, Боже, я провел весь свой последний день, стуча им по голове, и это просто не сработает! Чертов учитель даже не упомянул об импорте данных в DataGridView!
У меня есть домашнее задание C # Windows Forms: мне нужно читать данные из.txt
(пользователи) файл и вставьте его вDataGridView таблица в C # Microsoft Visual Studio 2012. Данные вusers.txt
что-то вроде этого с разделителями табуляции:
-------------------------------------------------
ID Name Surname Telephone VIP Age Balance
-------------------------------------------------
0001 John Killer 1-500-300 0 13 2272
0002 Name Surname 1-500-200 0 27 225
0003 Martin King 1-500-400 1 41 1070
Проигнорируйте имена меток (ID, Имя, Фамилия ...), я написал их только для ясности, настоящий файл содержит только необработанные пользовательские данные.
Теперь я ранее создал классUsers
, который имеет эти поля:
а затем создал DataGridView (usersDataGridView
) и импортировал поля из классаUsers
в этом.
Хорошо, алгоритмически это довольно простая задача, не так ли?
Моя идея заключалась в следующем: чтение содержимого файла сStreamReader
сохраняя каждую строку в строку, а затем разбивая строку на части, используя\t
в качестве разделителя сString.Split
.
Однако, как только я разбил эти строки ... ну, я в принципе не представляю, как импортировать их в DataGridView (я "знаю", что это должно быть какDataSource
но ... пользовательский интерфейс Visual Studio 2012 кажется мне слишком "сложным", чтобы я мог понять, как я могу указать строку или какой-то чертов тип данных в качестве источника данных).
Мои жалкие попытки привели меня к следующему:
Попытка 1:
public void Test_1()
{
string filePath = string.Format("{0}/databases/{1}", AppDomain.CurrentDomain.BaseDirectory, "user_db.txt");
string[] textData = System.IO.File.ReadAllLines(filePath);
string[] headers = textData[0].Split('\t');
DataTable dataTable1 = new DataTable();
foreach (string header in headers)
dataTable1.Columns.Add(header, typeof(string), null);
for (int i = 1; i < textData.Length; i++)
dataTable1.Rows.Add(textData[i].Split('\t'));
//Set the DataSource of DataGridView to the DataTable
promotionsDataGridView.DataSource = dataTable1;
}
Попытка 2:
public void ReadFromFile()
{
string delimeter = "\t";
string tableName = "BooksTable";
string fileName = string.Format("{0}/databases/{1}", AppDomain.CurrentDomain.BaseDirectory, "bigtest.sql");
DataSet dataset = new DataSet();
StreamReader sr = new StreamReader(fileName);
dataset.Tables.Add(tableName);
dataset.Tables[tableName].Columns.Add("InventoryID");
dataset.Tables[tableName].Columns.Add("Brand");
dataset.Tables[tableName].Columns.Add("Category");
dataset.Tables[tableName].Columns.Add("Description");
dataset.Tables[tableName].Columns.Add("Promotions");
dataset.Tables[tableName].Columns.Add("Quantity");
dataset.Tables[tableName].Columns.Add("Price");
string allData = sr.ReadToEnd();
string[] rows = allData.Split("\r".ToCharArray());
foreach (string r in rows)
{
string[] items = r.Split(delimeter.ToCharArray());
dataset.Tables[tableName].Rows.Add(items);
}
this.productsDataGridView.DataSource = dataset.Tables[0].DefaultView;
}
Однако я продолжаю получать какую-то ерунду
Размер входного массива больше любого
Так как у меня буквально нет опыта работы сDataGridView
Я предполагаю, что у меня есть некоторые ужасные ошибки на уровне алгоритма, верно ?!
Пожалуйста, кто-нибудь, помогите мне! Я прочитал, скопировал, вставил, скомпилировал и отладил около 20 различных проблем на аналогичную тему, и я до сих пор нигде нет!
Что такоеправильный способ чтения данных из.txt
файл, а затем вставить его в DataGridView?
Любая помощь или ответы высоко ценятся!