![]() |
Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
Hello one and all,
I'm developing an Asp.NET system to take a CSV file uploaded via the web, parse it, and insert the values into an SQL database. My sticking point comes when I try to split() the string returned by readline() on the file. The following code snippet works for me: tokens = "one,two,three,four".Split(",") for each token in tokens response.write("<td>"+token+"</td>") next However, if I take the next line in the CSV, read using StreamReader.ReadLine on the PostedFile.InputStream, I receive "Object reference not set to an instance of an object." which I have narrowed down to be my string holding the line. Further investigation reveals that no other string member functions work on my line (.ToCharArray, .ToString, etc). I suspect that StreamReader.ReadLine is not correctly returning a string, even though Response.Write(line) displays what I would expect. I would appreciate any help or suggestions anybody can offer as to what's going on here. Thanks, Andy -- code -- <%@ Page Language="VB" Debug="true" %> <%@ Import Namespace="System.IO" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <link href="adwords.css" rel="stylesheet" type="text/css" media="screen" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Upload CSV</title> </head> <body> <script runat="server"> Sub UploadFile_Clicked(Sender as Object, e as EventArgs) Dim str As Stream str = loFile.PostedFile.InputStream() Dim sr As StreamReader = New StreamReader(str) Dim tokens as String() = Nothing Dim line, token, t as String Dim i as integer for i = 1 to 6 line = sr.ReadLine() next i response.write("<table>") do line = sr.ReadLine() response.write("<tr>") tokens = line.Split(ControlChars.Tab) for each token in tokens response.write("<td>"+token+"</td>") next response.write("</tr>") loop until line is nothing response.write("</table>") sr.close() End sub </script> <form action="upload.aspx" method="post" enctype="multipart/form-data" runat="server"> <fieldset> <legend>Select a file to upload:</legend> <p><input id="loFile" type="file" runat="server"></p> <p><input type="submit" OnServerClick="UploadFile_Clicked" class="clientloginsubmit" name="Submit" value="Upload AdWords CSV" runat="server" /></p> </fieldset> </form> </body> </html> |
Re: Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
This forum is for classic asp questions.
If this were in classic asp, personally I'd use ado to connect to the csv and treat it like a database table. "Andy Mee" <andy@RemoveThisSubDomain.itqsolutions.net> wrote in message news:bpdbfv$n5$1@hercules.btinternet.com... > Hello one and all, > > I'm developing an Asp.NET system to take a CSV file uploaded via the web, > parse it, and insert the values into an SQL database. My sticking point > comes when I try to split() the string returned by readline() on the file. > > The following code snippet works for me: > tokens = "one,two,three,four".Split(",") > for each token in tokens > response.write("<td>"+token+"</td>") > next > > However, if I take the next line in the CSV, read using > StreamReader.ReadLine on the PostedFile.InputStream, I receive "Object > reference not set to an instance of an object." which I have narrowed down > to be my string holding the line. Further investigation reveals that no > other string member functions work on my line (.ToCharArray, .ToString, > etc). > > I suspect that StreamReader.ReadLine is not correctly returning a string, > even though Response.Write(line) displays what I would expect. > > I would appreciate any help or suggestions anybody can offer as to what's > going on here. > > Thanks, > > Andy > > > -- code -- > > <%@ Page Language="VB" Debug="true" %> > <%@ Import Namespace="System.IO" %> > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> > <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> > <head> > <link href="adwords.css" rel="stylesheet" type="text/css" media="screen" /> > <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> > <title>Upload CSV</title> > </head> > <body> > > <script runat="server"> > Sub UploadFile_Clicked(Sender as Object, e as EventArgs) > Dim str As Stream > > str = loFile.PostedFile.InputStream() > Dim sr As StreamReader = New StreamReader(str) > > Dim tokens as String() = Nothing > Dim line, token, t as String > > Dim i as integer > for i = 1 to 6 > line = sr.ReadLine() > next i > response.write("<table>") > > do > line = sr.ReadLine() > response.write("<tr>") > tokens = line.Split(ControlChars.Tab) > for each token in tokens > response.write("<td>"+token+"</td>") > next > response.write("</tr>") > loop until line is nothing > response.write("</table>") > > sr.close() > > End sub > </script> > > <form action="upload.aspx" method="post" enctype="multipart/form-data" > runat="server"> > <fieldset> > <legend>Select a file to upload:</legend> > <p><input id="loFile" type="file" runat="server"></p> > <p><input type="submit" OnServerClick="UploadFile_Clicked" > class="clientloginsubmit" name="Submit" value="Upload AdWords CSV" > runat="server" /></p> > </fieldset> > </form> > > </body> > </html> > > |
Re: Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
> This forum is for classic asp questions.
Apologies... if I scan my news server for ASP groups, I find precisely five. Discounting Italian, German and Hebrew groups, I'm left with three. None of them seemed to specify what ASP they were dealing with... > If this were in classic asp, personally I'd use ado to connect to the csv > and treat it like a database table. Thanks for that -- I'll look into the ADO stuff in .NET. Still baffled by the completely nonsensical error though :) Andy. |
Re: Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
Use these "words" as your search through the newsgroups:
aspnet adonet dotnet (broad) Ray at work "Andy Mee" <andy@RemoveThisSubDomain.itqsolutions.net> wrote in message news:bpddsd$4h0$1@sparta.btinternet.com... > > This forum is for classic asp questions. > > Apologies... if I scan my news server for ASP groups, I find precisely five. > Discounting Italian, German and Hebrew groups, I'm left with three. None of > them seemed to specify what ASP they were dealing with... > > > > If this were in classic asp, personally I'd use ado to connect to the csv > > and treat it like a database table. > > Thanks for that -- I'll look into the ADO stuff in .NET. > > Still baffled by the completely nonsensical error though :) > > Andy. > > |
Re: Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
Andy Mee wrote:
>> This forum is for classic asp questions. > > Apologies... if I scan my news server for ASP groups, I find > precisely five. Discounting Italian, German and Hebrew groups, I'm > left with three. None of them seemed to specify what ASP they were > dealing with... > > The .dotnet.* groups are set up for .Net questions. Bob Barrows -- Microsoft MVP -- ASP/ASP.NET Please reply to the newsgroup. The email account listed in my From header is my spam trap, so I don't check it very often. You will get a quicker response by posting to the newsgroup. |
Re: Web Forms / HTTP File Upload / String.Split a StreamReader.ReadLine() string
http://www.able-consulting.com/MDAC/...crosoftJetText
"Andy Mee" <andy@RemoveThisSubDomain.itqsolutions.net> wrote in message news:bpddsd$4h0$1@sparta.btinternet.com... > > This forum is for classic asp questions. > > Apologies... if I scan my news server for ASP groups, I find precisely five. > Discounting Italian, German and Hebrew groups, I'm left with three. None of > them seemed to specify what ASP they were dealing with... > > > > If this were in classic asp, personally I'd use ado to connect to the csv > > and treat it like a database table. > > Thanks for that -- I'll look into the ADO stuff in .NET. > > Still baffled by the completely nonsensical error though :) > > Andy. > > |
| All times are GMT. The time now is 01:02 PM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.