Here I have created sample that will help you out.
HTML
<div>
<asp:FileUpload ID="fu1" runat="server" />
<asp:Button Text="Import" runat="server" OnClick="Import" />
<br />
<br />
<asp:GridView ID="gvData" runat="server" AutoGenerateColumns="true" />
</div>
Code
C#
protected void Import(object sender, EventArgs e)
{
if (fu1.HasFile)
{
string csvPath = Server.MapPath("~/Files/") + Path.GetFileName(fu1.PostedFile.FileName);
fu1.SaveAs(csvPath);
ImportService.ImportCSVSoapClient client = new ImportService.ImportCSVSoapClient();
DataTable dt = client.GetCSVData(csvPath, new string[] { "Id", "Name", "Country" });
gvData.DataSource = dt;
gvData.DataBind();
}
}
VB.Net
Protected Sub Import(ByVal sender As Object, ByVal e As EventArgs)
If fu1.HasFile Then
Dim csvPath As String = Server.MapPath("~/Files/") + Path.GetFileName(fu1.PostedFile.FileName)
fu1.SaveAs(csvPath)
Dim client As ImportService.ImportCSVSoapClient = New ImportService.ImportCSVSoapClient()
Dim dt As DataTable = client.GetCSVData(csvPath, New String() {"Id", "Name", "Country"})
gvData.DataSource = dt
gvData.DataBind()
End If
End Sub
ImportCSV (WebService)
C#
[WebMethod]
public DataTable GetCSVData(string filePath, params string[] columnNames)
{
try
{
DataTable dt = new DataTable("ImportCSV");
foreach (string columnName in columnNames)
{
dt.Columns.Add(columnName);
}
string csvData = File.ReadAllText(filePath);
foreach (string row in csvData.Split('\n'))
{
if (!string.IsNullOrEmpty(row))
{
dt.Rows.Add();
for (int i = 0; i < columnNames.Length; i++)
{
dt.Rows[dt.Rows.Count - 1][i] = row.Split(',')[i];
}
}
}
return dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
VB.Net
<WebMethod>
Public Function GetCSVData(ByVal filePath As String, ParamArray columnNames As String()) As DataTable
Try
Dim dt As DataTable = New DataTable("ImportCSV")
For Each columnName As String In columnNames
dt.Columns.Add(columnName)
Next
Dim csvData As String = File.ReadAllText(filePath)
For Each row As String In csvData.Split(vbLf)
If Not String.IsNullOrEmpty(row) Then
dt.Rows.Add()
For i As Integer = 0 To columnNames.Length - 1
dt.Rows(dt.Rows.Count - 1)(i) = row.Split(","c)(i)
Next
End If
Next
Return dt
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
End Function
Sample.csv
Id,Name,Country
1,John Hammond,United States
2,Mudassar Khan,India
3,Suzanne Mathews,France
4,Robert Schidner,Russia
screenshot
