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

User Control... HELP???

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 soon as I put the sub into the User Control it seems to
stop working as ImageFile.PostedFile.InputStream = nothing...

Can someone please please HELP.... Why does this happen???

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
Was this post helpful to you?

Why should I rate a post?

Expand AllCollapse All

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


P: n/a
Tim:
NullReference exceptions are typically easy to track down. My guess is
simply that ImageFile isn't a control in your user control. In other words,
there's no:
<input type="file" id="ImageFile" runat="server" /> in yoru ascx
Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/ - New and Improved (yes, the popup is
annoying)
http://www.openmymind.net/faq.aspx - unofficial newsgroup FAQ (more to
come!)
"Tim::.." <myatix_at_hotmail.com> wrote in message
news:D3**********************************@microsof t.com...
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 soon as I put the sub into the User Control it seems to
stop working as ImageFile.PostedFile.InputStream = nothing...

Can someone please please HELP.... Why does this happen???

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
Was this post helpful to you?

Why should I rate a post?

Expand AllCollapse All

Nov 19 '05 #2

P: n/a
Hi Karl,

Thanks for the reply... The thing is the control is in the ASCX file!

The other strange thing is if I take the code from the control and put it
straight into the page it works file!

Any other ideas.... I'm stuck....

"Karl Seguin" wrote:
Tim:
NullReference exceptions are typically easy to track down. My guess is
simply that ImageFile isn't a control in your user control. In other words,
there's no:
<input type="file" id="ImageFile" runat="server" /> in yoru ascx
Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/ - New and Improved (yes, the popup is
annoying)
http://www.openmymind.net/faq.aspx - unofficial newsgroup FAQ (more to
come!)
"Tim::.." <myatix_at_hotmail.com> wrote in message
news:D3**********************************@microsof t.com...
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 soon as I put the sub into the User Control it seems to
stop working as ImageFile.PostedFile.InputStream = nothing...

Can someone please please HELP.... Why does this happen???

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)

Nov 19 '05 #3

P: n/a
Tim:
I'm going to have to stick to my first recommendation. You must be taking
more than the sub and also moving the ascx code? Why don't you just try to
debug and see if ImageFile is a nothing?

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/ - New and Improved (yes, the popup is
annoying)
http://www.openmymind.net/faq.aspx - unofficial newsgroup FAQ (more to
come!)
"Tim::.." <myatix_at_hotmail.com> wrote in message
news:E5**********************************@microsof t.com...
Hi Karl,

Thanks for the reply... The thing is the control is in the ASCX file!

The other strange thing is if I take the code from the control and put it
straight into the page it works file!

Any other ideas.... I'm stuck....

"Karl Seguin" wrote:
Tim:
NullReference exceptions are typically easy to track down. My guess is
simply that ImageFile isn't a control in your user control. In other
words,
there's no:
<input type="file" id="ImageFile" runat="server" /> in yoru ascx
Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/ - New and Improved (yes, the popup is
annoying)
http://www.openmymind.net/faq.aspx - unofficial newsgroup FAQ (more to
come!)
"Tim::.." <myatix_at_hotmail.com> wrote in message
news:D3**********************************@microsof t.com...
> 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 soon as I put the sub into the User Control it seems
> to
> stop working as ImageFile.PostedFile.InputStream = nothing...
>
> Can someone please please HELP.... Why does this happen???
>
> 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)
>

Nov 19 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.