By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,300 Members | 1,789 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,300 IT Pros & Developers. It's quick & easy.

USER CONTROL... ARHHHH

P: n/a
Can someone please help....

I'm having major issues with a user control I'm tring to create!

I an trying to execute a sub called UploadData() from a user control which I
managed to do but for some reason I keep getting the error:

Exception Details: System.NullReferenceException: Object reference not set
to an instance of an object.

Source Error:
Line 114: Sub UploadData()
Line 115: 'Dim ImageFile As System.Web.UI.HtmlControls.HtmlInputFile
Line 116: Dim imgstream As Stream = ImageFile.PostedFile.InputStream
Line 117: Dim imgdata(ImageFile.PostedFile.ContentLength) As Byte
Line 118: imgstream.Read(imgdata, 0,
ImageFile.PostedFile.ContentLength)

Error is on line 116...

I know that the sub works because if I put it staight into the aspx page it
works fine but as sson as I put the sub into the User Control it seems to
stop working...

Can someone please please HELP...

Thanks

ASPX PAGE...

Imports System.Data.SqlClient
Imports System.Data
Imports System.IO

Public Class binUpload
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.
<System.diagnostics.debuggerstepthrough()> Private Sub
InitializeComponent()

End Sub
Protected WithEvents Menu1 As skmMenu.Menu
Protected WithEvents phHeader As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents phHeaderMenu As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents phFooter As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents phQuickLinks As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents phRefresh As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents phBody As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents phUploader As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents phWait As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents phResults As System.Web.UI.WebControls.PlaceHolder
'NOTE: The following placeholder declaration is required by the Web Form
Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub

#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here

phBody.Controls.Add(New LiteralControl("<body bottomMargin=" &
Chr(34) & "0" & Chr(34) & "leftMargin=" & Chr(34) & "0" & Chr(34) &
"topMargin=" & Chr(34) & "0" & Chr(34) & "rightMargin=" & Chr(34) & "0" &
Chr(34) & "runat=" & Chr(34) & "server" & Chr(34) & ">"))
Dim UploadCnt As Control =
LoadControl("../binFileUpload/UploadCnt.ascx")
phWait.Controls.Clear()
phResults.Controls.Clear()
phUploader.Controls.Add(UploadCnt)

If Page.IsPostBack Then

' user submitted file to be uploaded
' create URL with query string to confirm file upload
' next page will not be a postback, so viewstate will be lost
Dim sRefreshURL As String = Request.Url.ToString() &
"?Upload=True"

If Request.Browser.Browser = "IE" Then
phBody.Controls.Clear()
phBody.Controls.Add(New LiteralControl("<body onload=" &
Chr(34) & "loadTarget(" & Chr(39) & sRefreshURL & Chr(39) & ")" & Chr(59) &
Chr(34) & " bottomMargin=" & Chr(34) & "0" & Chr(34) & " leftMargin=" &
Chr(34) & "0" & Chr(34) & " topMargin=" & Chr(34) & "0" & Chr(34) & "
rightMargin=" & Chr(34) & "0" & Chr(34) & " runat=" & Chr(34) & "server" &
Chr(34) & ">"))

' set META REFRESH as well in case script is disabled
' use long delay so that script can load page first if
possible
phRefresh.Controls.Clear()
phRefresh.Controls.Add(New LiteralControl("<meta
http-equiv=" & Chr(34) & "refresh" & Chr(34) & " content=" & Chr(34) &
"30;url=" & sRefreshURL & Chr(34) & ">"))
Else

' not IE so use META REFRESH to start loading next page
' allow 3 seconds for progress bar image to load

phRefresh.Controls.Clear()
phRefresh.Controls.Add(New LiteralControl("<meta
http-equiv=" & Chr(34) & "Refresh" & Chr(34) & " content=" & Chr(34) &
"3;url=" & sRefreshURL & Chr(34) & ">"))

End If

' hide Upload file controls and show "wait" section
Dim WaitCnt As Control =
LoadControl("../binFileUpload/ProgressCnt.ascx")
phUploader.Controls.Clear()
phResults.Controls.Clear()
phWait.Controls.Add(WaitCnt)

'pnlUploadFile.Visible = False
'pnlWait.Visible = True
Dim objUpload As UploadCnt
objUpload.UploadData()

Else

' get query string
Dim iUpload As String = Request.QueryString("Upload")
If iUpload = "" Then

'pnlUploadFile.Visible = True
phWait.Controls.Clear()
phResults.Controls.Clear()
phUploader.Controls.Add(UploadCnt)

Else
phUploader.Controls.Clear()
phWait.Controls.Clear()
Dim ResultsCnt As Control =
LoadControl("../binFileUpload/ResultsCnt.ascx")
phResults.Controls.Add(ResultsCnt)

End If
Dim sRefreshURL As String = Request.Url.ToString() &
"?Upload=False"
End If
End Sub

End Class
USER CONTROL...

Imports System.Data.SqlClient
Imports System.Data
Imports System.IO
Public Class UploadCnt
Inherits System.Web.UI.UserControl

#Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()

End Sub
Protected WithEvents phHeader As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents phHeaderMenu As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents ImageTitle As System.Web.UI.WebControls.TextBox
Protected WithEvents Image4 As System.Web.UI.WebControls.Image
Protected WithEvents fldDescription As System.Web.UI.WebControls.TextBox
Protected WithEvents Image3 As System.Web.UI.WebControls.Image
Protected WithEvents Image1 As System.Web.UI.WebControls.Image
Protected WithEvents fldOwner As System.Web.UI.WebControls.TextBox
Protected WithEvents ddlOffice As System.Web.UI.WebControls.DropDownList
Protected WithEvents Image5 As System.Web.UI.WebControls.Image
Protected WithEvents lblMessage As System.Web.UI.WebControls.Label
Protected WithEvents urlUploadedFiles As
System.Web.UI.WebControls.HyperLink
Protected WithEvents phQuickLinks As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents phFooter As System.Web.UI.WebControls.PlaceHolder
Protected WithEvents Table2 As System.Web.UI.HtmlControls.HtmlTable
Protected WithEvents ImageFile As System.Web.UI.HtmlControls.HtmlInputFile
Protected WithEvents Upload As System.Web.UI.WebControls.Button

'NOTE: The following placeholder declaration is required by the Web Form
Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here

'Loads user controls
Dim c1 As Control = LoadControl("../userControls/footer.ascx")
phFooter.Controls.Add(c1)
Dim c2 As Control = LoadControl("../userControls/headerMenu.ascx")
phHeaderMenu.Controls.Add(c2)
Dim c3 As Control = LoadControl("../userControls/Header.ascx")
phHeader.Controls.Add(c3)
Dim c4 As Control = LoadControl("../userControls/QuickLinks.ascx")
phQuickLinks.Controls.Add(c4)

End Sub
Sub UploadData()
'Dim ImageFile As System.Web.UI.HtmlControls.HtmlInputFile
Dim imgstream As Stream = ImageFile.PostedFile.InputStream
Dim imgdata(ImageFile.PostedFile.ContentLength) As Byte
imgstream.Read(imgdata, 0, ImageFile.PostedFile.ContentLength)
Dim MyConn As New
SqlConnection(ConfigurationSettings.AppSettings("s trConn"))
Dim cmd As New SqlCommand("fileUpload", MyConn)
cmd.CommandType = CommandType.StoredProcedure

Dim titleparam As New SqlParameter("@fileTitle", SqlDbType.NVarChar,
255)
Dim descriptionparam As New SqlParameter("@fileDescription",
SqlDbType.NVarChar, 255)
Dim Ownerparam As New SqlParameter("@fileOwner", SqlDbType.NVarChar,
255)
Dim Officeparam As New SqlParameter("@officeID", SqlDbType.Int)
Dim typeparam As New SqlParameter("@fileType", SqlDbType.NVarChar,
100)
Dim dataparam As New SqlParameter("@fileData", SqlDbType.Image)

'Dim ImageTitle As System.Web.UI.WebControls.TextBox
'Dim fldOwner As System.Web.UI.WebControls.TextBox
'Dim fldDescription As System.Web.UI.WebControls.TextBox
'Dim ddlOffice As System.Web.UI.WebControls.DropDownList

titleparam.Value = ImageTitle.Text
descriptionparam.Value = fldDescription.Text
Ownerparam.Value = fldOwner.Text
Officeparam.Value = ddlOffice.SelectedIndex
typeparam.Value = ImageFile.PostedFile.ContentType
dataparam.Value = imgdata

cmd.Parameters.Add(titleparam)
cmd.Parameters.Add(descriptionparam)
cmd.Parameters.Add(Ownerparam)
cmd.Parameters.Add(Officeparam)
cmd.Parameters.Add(typeparam)
cmd.Parameters.Add(dataparam)

MyConn.Open()
cmd.ExecuteNonQuery()
MyConn.Close()
End Sub
End Class

Nov 19 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a

"Tim::.." <myatix_at_hotmail.com> wrote in message
news:64**********************************@microsof t.com...
Can someone please help....
Exception Details: System.NullReferenceException: Object reference not set
to an instance of an object.

Error is on line 116...
Line 116: Dim imgstream As Stream =
ImageFile.PostedFile.InputStream

ok, so it's either "ImageFile.PostedFile.InputStream" is null or "imgstream"
is null. Stream can't be instantiated so it's the other one.
Nov 19 '05 #2

P: n/a
That I understand but I don't know why???

Why does it work when the code is not in a user control but as soon as I put
the code into a user control it stops working???

Thanks for your reply!

"Chance Hopkins" wrote:

"Tim::.." <myatix_at_hotmail.com> wrote in message
news:64**********************************@microsof t.com...
Can someone please help....

Exception Details: System.NullReferenceException: Object reference not set
to an instance of an object.


Error is on line 116...


Line 116: Dim imgstream As Stream =
ImageFile.PostedFile.InputStream

ok, so it's either "ImageFile.PostedFile.InputStream" is null or "imgstream"
is null. Stream can't be instantiated so it's the other one.

Nov 19 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.