サンプル
* CSVファイルをサーバ側で保存せずに取り込み、ラベルに出力する
デザイン部
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>送信するファイルを指定して、[送信]ボタンを押してください。</div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<br />
<asp:Button id="Button1" runat="server" Text="取り込む" />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<asp:Button ID="Button2" runat="server" Text="出力" />
<br />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="Button1" />
</Triggers>
</asp:UpdatePanel>
<br />
<asp:UpdateProgress ID="UpdateProgress1" runat="server"
AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="100">
<ProgressTemplate>
<img alt="お待ち下さい。。。" src="Images/loading.gif" />
お待ち下さい。。。
</ProgressTemplate>
</asp:UpdateProgress>
プログラム部
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Using parser As New TextFieldParser(Me.FileUpload1.PostedFile.FileName, _
System.Text.Encoding.GetEncoding("Shift_JIS"))
parser.TextFieldType = FieldType.Delimited
parser.SetDelimiters(",") ' 区切り文字はコンマ
Dim csvDataSet As List(Of String()) = New List(Of String())
While Not parser.EndOfData
Dim row As String() = parser.ReadFields() ' 1行読み込み
csvDataSet.Add(row)
End While
ViewState("CsvDataSet") = csvDataSet
Me.Label1.Text = "成功"
End Using
End Sub
Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim output As String = String.Empty
Dim csvDataSet = DirectCast(ViewState("CsvDataSet"), List(Of String()))
For Each csvRow In csvDataSet
For Each csvData In csvRow
output += (csvData & "<br />")
Next
Next
Me.Label1.Text = output
End Sub
PostedFile.FileName:クライアント側のファイルフルパス
* あくまで「クライアント側」のファイルフルパスであることに注意。
(このパス情報からファイルを生成しないこと!)