私はこれがばかげた質問であることを知っていますが、神よ、私は最後の日をずっと頭をぶつけて過ごしましたが、うまくいきません! クソ先生は、データを DataGridView にインポートすることについては何も言及していませんでした。
C# Windows フォームの宿題があります。(users) ファイルからデータを読み取って、C# Microsoft Visual Studio 2012 のDataGridView.txt
テーブルに貼り付ける必要があります。ファイル内のデータは、タブ区切り記号を使用したようなものです。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
さて、私は以前にこれらのフィールドを持つclass を作成しました:
- ID
- 名前
- 姓
- 電話
- VIP
- 購入したアイテム
- 価格
次に、DataGridView(usersDataGridView
)を作成し、クラスからフィールドをインポートしUsers
ました。
わかりました、アルゴリズム的には、これはやや簡単な作業ですね。
私の考えは、ファイルの内容を で読み取り、各行を文字列に保存してから、 を区切り文字としてStreamReader
使用して文字列を部分に分割することでした。\t
String.Split
ただし、これらの行を分割すると...まあ、基本的にそれらをDataGridViewにインポートする方法がわかりません(そうすべきだと「知っています」DataSource
が... Visual Studio 2012のUIは「複雑」すぎるようです文字列またはデータソースとしてのひどいデータ型を指す方法を理解させてください)。
私の哀れな試みは、私を次のように導きました:
試行 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 の異なる問題を読み、コピーし、貼り付け、コンパイルし、デバッグしましたが、まだどこにも行きません!
ファイルからデータを読み取り、それを DataGridView に貼り付ける適切な方法は何ですか?.txt
どんな助けや答えも大歓迎です!!