G
Guest
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 80: 'pnlWait.Visible = True
Line 81: Dim objUpload As UploadCnt
Line 82: objUpload.UploadData()
Line 83:
Line 84: Else
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("strConn"))
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
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 80: 'pnlWait.Visible = True
Line 81: Dim objUpload As UploadCnt
Line 82: objUpload.UploadData()
Line 83:
Line 84: Else
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("strConn"))
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