我如何用字串陣列填充這個資料表?我使用這個模板,但我只能添加硬編碼的資料......我有一個包含我的資料的字串 [] 值,應該添加到資料表中。我認為這很容易,但我看不到。我一直在嘗試遍歷它,但這似乎不起作用?認為我錯過了一個關鍵步驟。我在這里創建了一個我的資料表:
DataTable dt = new DataTable() { TableName = "MBR" };
向其中添加列
string[] columns = new string [l];
for (int i = 0; i < l; i )
{
columns[i] = tags[i];
}
for (int i = 0; i < timeStamps.Count(); i )
{
foreach (var item in tagCollection)
{
if (timeStamps[i].Date == item.time)
{
Console.WriteLine(item.time " " item.name );
}
}
}
dt.Columns.AddRange(columns.Select(c => new DataColumn(c.ToString())).ToArray());
這是我在我的同事正在使用的模板中使用的,我們需要在此處提供資料
var rows = new string[][]
{
new string[] {"1", "2", "false" },
new string[] { "test", "10000", "19.9" },
};
foreach (var row in rows)
{
dt.Rows.Add(row);
}
//Convert datatable to dataset and add it to the workbook as worksheet
ds.Tables.Add(dt);
workbook.Worksheets.Add(ds);
我有很多列,例如 500 。我需要在每一列中添加一條從我的字串 [] 中獲得的資料。它可以包含 10 或 500 多條記錄,這取決于。我需要將每條記錄添加到一行。我的專欄已經在這方面作業了。我只需要一種將多個陣列添加到表中的方法
uj5u.com熱心網友回復:
這對我有用:
DataTable dt = new DataTable() { TableName = "MBR" };
dt.Columns.Add(new DataColumn("A", typeof(string)));
dt.Columns.Add(new DataColumn("B", typeof(string)));
dt.Columns.Add(new DataColumn("C", typeof(string)));
var rows = new string[][]
{
new string[] {"1", "2", "false" },
new string[] { "test", "10000", "19.9" },
};
foreach (var row in rows)
{
dt.Rows.Add(row);
}
這給了我:

uj5u.com熱心網友回復:
以下是從人員檔案中填充資料表的方法:
var people = new DataTable();
people.Columns.Add("Name");//string
people.Columns.Add("Age", typeof(int));
people.Columns.Add("HireDate", typeof(DateTime));
people.Columns.Add("IsManager", typeof(bool));
foreach(var line in File.ReadLines("people.csv")){
var bits = line.Split(',');
dt.Rows.Add(new object[]{
bits[0], //Name
int.Parse(bits[1]), //Age
DateTime.Parse(bits[2]), //HireDate
bool.Parse(bits[3]) //IsManager
});
}
當然,如果您從 CSV 讀取資料,最好使用像 Csvhelper 這樣的庫 - 它可以直接讀入 DataTables,并且比這個示例復雜得多。這只是為了展示“通過為列提供值來制作資料表,添加列,添加行”的程序
最好為此創建一個強型別資料表:
- 將新的 DataSet 型別的檔案添加到您的專案并為其命名
- 打開它,右鍵單擊表面,選擇添加資料表,給它一個合理的名稱
- 右鍵單擊表,選擇 Add Column .. 添加列并設定其名稱、資料型別、默認值等...
- 重復直到所有列都完成
在您的代碼中使用它與上面的基本相同,只是您創建了一個表的實體。它是一個內部類,因此您也可以使用資料集的名稱創建它:
var dt = new YourDataSetNameHere.YourDataTableNameHere_DataTable();
//the columns are already added, you don't need to add them
foreach(var line in ...){
...
dt.Add_YourDataTableNameHere_Row(
bits[0], //Name
int.Parse(bits[1]), //Age
DateTime.Parse(bits[2]), //HireDate
bool.Parse(bits[3]) //IsManager
);
}
它們比常規的弱型別資料表好用得多
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/483524.html
標籤:C#
上一篇:單元測驗檔案上傳時無法保存檔案
下一篇:通用基類建構式
