Listbox controls

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Dear Experts,

I am having 1 listbox control in my web form and trying to retrieve the
items and load into it. I want to list out those uploaded files into the
database and list out in the listbox control. My code is as follow:

-------------------------------------------
Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnUpload.Click
litMsgBox.Text = ""
If FileUpload1.HasFile Then
'Upload Attachment to Server
If Not FileUpload1.FileContent Is Nothing Then
'perform validation logic before updating the database -
i.e. if file size is
With FileUpload1.FileContent
Dim abyContent(CType(.Length, Integer)) As Byte
'allocate buffer for file data
.Read(abyContent, 0, .Length)

'Update the attach filename into database
InsertFile(FileUpload1.FileName, abyContent)

'Update the attach filename into server folder
SaveFile(FileUpload1.FileName)

'btnUpload.Enabled = False
'btnDelete.Visible = True
'strAllAttachFiles = strAllAttachFiles &
FileUpload1.FileName & ","

'txtRequest.Text = strAllAttachFiles
End With
End If

Else
strMsgBox = "<script language='Javascript'>alert(""No File to be
uploaded"")"
strMsgBox = strMsgBox & Chr(60) & "/script>"
litMsgBox.Text = strMsgBox
End If
LoadAttachments(intRequestID)

End Sub

Private Sub InsertFile(ByVal strFilename As String, ByVal abyContent As
Byte())
'Dim oConnection As New OleDbConnection(strConnectionString)
'Dim intRequestID As Integer
Try
DatabaseConnection()
intRequestID = Int(txtReqNo.Text)
Dim strFileUploadQuery As String = "INSERT INTO Attachments
(Attachments, FileContent, RequestID) VALUES (?,?," & intRequestID & ")"
Dim oCommand As New OleDbCommand(strFileUploadQuery, dbConnection)
Dim oParameter As OleDbParameter = Nothing
oParameter = New OleDbParameter("?", OleDbType.VarChar)
oParameter.Value = strFilename
oParameter.Direction = ParameterDirection.Input
oCommand.Parameters.Add(oParameter)

oParameter = New OleDbParameter("?", OleDbType.VarBinary)
oParameter.Value = abyContent
oParameter.Direction = ParameterDirection.Input
oCommand.Parameters.Add(oParameter)

oCommand.CommandTimeout = 120
oCommand.CommandType = CommandType.Text

oCommand.ExecuteNonQuery()


Catch ex As Exception
Throw ex

Finally
DatabaseDisconnection()
LoadAttachments(intRequestID)
End Try
End Sub

Public Sub LoadAttachments(ByVal intReqID As Integer)
Try
DatabaseConnection()
Dim strSQLFileAttach As String = "SELECT * FROM Attachments
WHERE RequestID = " & intReqID

Dim FileAttachCommand As New
Data.OleDb.OleDbCommand(strSQLFileAttach, dbConnection)
Dim FileAttachReader As Data.OleDb.OleDbDataReader =
FileAttachCommand.ExecuteReader()
lstAttachments.Items.Clear()
FileAttachReader.Read()

lstAttachments.DataValueField = "AttachmentID"
lstAttachments.DataTextField = "Attachments"
lstAttachments.DataSource = FileAttachReader
lstAttachments.DataBind()

FileAttachReader.Close()

Catch ex As Exception
TextBox1.Text = ex.Message
Finally
DatabaseDisconnection()
End Try

End Sub

--------------------------------------------------

My problem is when I retrieve the data, some how the 1st row of the data
does not appear. May I know where and how to get this problem solve?

Many thanks in advance.

Regards,
SB
 
Seok said:
Dear Experts,

I am having 1 listbox control in my web form and trying to retrieve the
items and load into it. I want to list out those uploaded files into the
database and list out in the listbox control. My code is as follow:

-------------------------------------------
Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnUpload.Click
litMsgBox.Text = ""
If FileUpload1.HasFile Then
'Upload Attachment to Server
If Not FileUpload1.FileContent Is Nothing Then
'perform validation logic before updating the database -
i.e. if file size is
With FileUpload1.FileContent
Dim abyContent(CType(.Length, Integer)) As Byte
'allocate buffer for file data
.Read(abyContent, 0, .Length)

'Update the attach filename into database
InsertFile(FileUpload1.FileName, abyContent)

'Update the attach filename into server folder
SaveFile(FileUpload1.FileName)

'btnUpload.Enabled = False
'btnDelete.Visible = True
'strAllAttachFiles = strAllAttachFiles &
FileUpload1.FileName & ","

'txtRequest.Text = strAllAttachFiles
End With
End If

Else
strMsgBox = "<script language='Javascript'>alert(""No File to be
uploaded"")"
strMsgBox = strMsgBox & Chr(60) & "/script>"
litMsgBox.Text = strMsgBox
End If
LoadAttachments(intRequestID)

End Sub

Private Sub InsertFile(ByVal strFilename As String, ByVal abyContent As
Byte())
'Dim oConnection As New OleDbConnection(strConnectionString)
'Dim intRequestID As Integer
Try
DatabaseConnection()
intRequestID = Int(txtReqNo.Text)
Dim strFileUploadQuery As String = "INSERT INTO Attachments
(Attachments, FileContent, RequestID) VALUES (?,?," & intRequestID & ")"
Dim oCommand As New OleDbCommand(strFileUploadQuery, dbConnection)
Dim oParameter As OleDbParameter = Nothing
oParameter = New OleDbParameter("?", OleDbType.VarChar)
oParameter.Value = strFilename
oParameter.Direction = ParameterDirection.Input
oCommand.Parameters.Add(oParameter)

oParameter = New OleDbParameter("?", OleDbType.VarBinary)
oParameter.Value = abyContent
oParameter.Direction = ParameterDirection.Input
oCommand.Parameters.Add(oParameter)

oCommand.CommandTimeout = 120
oCommand.CommandType = CommandType.Text

oCommand.ExecuteNonQuery()


Catch ex As Exception
Throw ex

Finally
DatabaseDisconnection()
LoadAttachments(intRequestID)
End Try
End Sub

Public Sub LoadAttachments(ByVal intReqID As Integer)
Try
DatabaseConnection()
Dim strSQLFileAttach As String = "SELECT * FROM Attachments
WHERE RequestID = " & intReqID

Dim FileAttachCommand As New
Data.OleDb.OleDbCommand(strSQLFileAttach, dbConnection)
Dim FileAttachReader As Data.OleDb.OleDbDataReader =
FileAttachCommand.ExecuteReader()
lstAttachments.Items.Clear()
FileAttachReader.Read()

lstAttachments.DataValueField = "AttachmentID"
lstAttachments.DataTextField = "Attachments"
lstAttachments.DataSource = FileAttachReader
lstAttachments.DataBind()

FileAttachReader.Close()

Catch ex As Exception
TextBox1.Text = ex.Message
Finally
DatabaseDisconnection()
End Try

End Sub

--------------------------------------------------

My problem is when I retrieve the data, some how the 1st row of the data
does not appear. May I know where and how to get this problem solve?

Many thanks in advance.

Regards,
SB

I don't have the methods in front of me, but you need to set the
selected index to whichever item you want shown after you do the databind.

Chris
 
Thanks Chris and Terry for your replies.

However, my problem is still unable to resolve when I put in the following
statement in my code:

lstAttachments.SelectedIndex=0

When the first time I upload the file into the database, the SELECT
statement is not able to retrieve the 1st file I uploaded. Then I went on to
upload the 2nd file and so on, the SELECT statement able to retrieve and
display the record(s) from 2nd file onward into the listbox control.
So I would like to know, what is the reason being such the way. In another
webform, I used the DataSource and bound it to the listbox control, it able
to view/list all the records into the control box. Please advise...

Thanks in advance.

Regards,
SB
 
I am not seeing anyplace where the ListBox's Index is being checked.
Could it be that it is defaulting to 1 instead of to 0?

When I have had these type of troubles, it seems to be common that I am
not checking the 0 'row' of the List.

Mark Dahl
 
Back
Top