Here is my problem. I have been using DropDownLists previously and now i need to use a ListBox. The DropDownList works fine, but will error with a ListBox

This is with a DropDownList:

Protected Sub LoadPartInfo()
Dim DB As New DBWrapper
Dim L As New ArrayList

L = DB.GetPartInfo

ddlPart.DataSource = L
ddlPart.DataTextField = "Description"
ddlPart.DataValueField = "Value"
ddlPart.DataBind()
End Sub

Protected Sub btnAddPartToOrder_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim O As Order
O = Session("CurrentOrder")

Dim P As New PartOrdered
P.PartNum = ddlPart.SelectedValue
P.NumOrdered = txtQuantity.Text
P.QuotedPrice = txtPrice.Text
O.PartsOrdered.Add(P)

'Not Nessarsary in VB
Session("CurrentOrder") = O

gvPartsOrdered.DataSource = O.PartsOrdered
gvPartsOrdered.DataBind()
End Sub

This is with a ListBox:

Protected Sub LoadPartInfo()
Dim DB As New DBWrapper
Dim L As New ArrayList

L = DB.GetPartInfo

lstPart.DataSource = L
lstPart.DataTextField = "Description"
lstPart.DataValueField = "Value"
lstPart.DataBind()
End Sub

Protected Sub btnAddPartToOrder_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim O As Order
O = Session("CurrentOrder")

Dim P As New PartOrdered
P.PartNum = lstPart.SelectedValue
P.NumOrdered = txtQuantity.Text
P.QuotedPrice = txtPrice.Text
O.PartsOrdered.Add(P)

'Not Nessarsary in VB
Session("CurrentOrder") = O

gvPartsOrdered.DataSource = O.PartsOrdered
gvPartsOrdered.DataBind()
End Sub

The bold line gives me the error 'Conversion from string "" to type 'Integer' is not valid.'

So i have figured out that there is some difference on how selectedvalue works with the DDL and LB, but cant figure out the solution. I have been searching for hours on a solution, but I am at a brick wall and looking for some insight to my problem.

Thanks for your help,
Daniel