1

こんにちは、いくつかの値が割り当てられている文字列と整数があります。ここで、文字列と整数値を読み取り、VB.Net を使用して作成したデータテーブルにそれらを割り当てる必要があります。

If dt.Rows.Count > 0 Then 
For n As Integer = 0 To dt.Rows.Count - 1 
EmployeeNo = (dt.Rows(n)(0)) 
EmpName = (dt.Rows(n)(1)).ToString 
Commission = CDbl(dt.Rows(n)(2)) 
'I need to read one by one and assign the [EmployeeNo,EmpName,Commission] 
'to the dataset DtEmployee in which Employee is the table and EmpNo, EmpName, Commission 'are the coloumns.. 
Next 
End If 

これについて私を助けてください..

4

1 に答える 1

2

これを試して、シート全体を DataTable にダンプします。

var connectionString = " Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";"
        var sheetName = "Sheet1";

        using (var con = new OleDbConnection(connectionString))
        {
            con.Open();

            var table = new DataTable(sheetName);
            var query = "SELECT * FROM [" + sheetName + "]";
            OleDbDataAdapter adapter = new OleDbDataAdapter(query, con);
            adapter.Fill(table);
            return table;
        }

編集:更新された質問に従って

If dt.Rows.Count > 0 Then 
For n As Integer = 0 To dt.Rows.Count - 1 
EmployeeNo = (dt.Rows(n)(0)) 
EmpName = (dt.Rows(n)(1)).ToString 
Commission = CDbl(dt.Rows(n)(2)) 
'I need to read one by one and assign the [EmployeeNo,EmpName,Commission] 
'to the dataset DtEmployee in which Employee is the table and EmpNo, EmpName, Commission 'are the coloumns.. 

Dim dataRow As DataRow = DtEmployee.Tables("Employee").AsEnumerable().Where(Function(row) row.Field(Of String)("EmpNo") = EmployeeNo).SingleOrDefault()
If dataRow IsNot Nothing Then

//Set your DataRow
dataRow("EmpName") = EmpName 
dataRow("Commission ") = Commission
DtEmployee.AcceptChanges();
End If

Next 
End If 

DtEmployee テーブルから行を見つけて更新するか、新しい行を追加したい場合は行が見つからない場合は、新しい行を作成して値を設定し、DtEmployee に追加します。

DataRow dataRow  = DtEmployee.Tables("Employee").NewRow()
//Set your DataRow
 dataRow("EmpName") = EmpName 
 dataRow("Commission ") = Commission
DtEmployee.Tables("Employee").Rows.Add(dataRow)

この助けを願っています..

于 2012-05-22T06:40:56.713 に答える