Your example make sense and that is the way it was done in VS 2003 in VS2005 you don't have to create the connetion and pass the parameter because it's all done for you. I don't know if you are using the VS2005
The value is pass some way in Sub SqlDataSourceDataGridView_Selecting which was created when I added the datasource.
One more thing the problems is this when I added the string to the selected "ListBox1.SelectedValue = strCounties" I get the message say that it not part of the Listbox1 because I'm change that string to look like this ex. "'ALAMEDA'" but the select Item is just "ALAMEDA". However is I leave it like this "ALAMEDA" I will get and error message because the store procedure as an in statement which require the strings to be in the following way "'ALAMEDA'" with the single quotes.
This is a lot of imformation but wanted to make sure I were conveying all the details 
I added the control "SqlDataSourceDataGridView_Selecting" with the .net 2.0 Wizard and I select the sqldatasource as store procedure it ask me for the crontrol to use for the value that is pass to the store procedure therefore, I choose "listbox.selectedvlaue".
One way to duplicate this is as follow:
1)Added a listbox1 then use the Wizard to add the sqlDatasource in northwind database select * from table
2) Then add a Gridview after that add the sqldatasource and select the store procedure (FIx it for your tables but leave the rest the same) as I indicated below.
You will notice that the only code you will see is the following below (of course and the HTML aspx file).
Partial
Class _Default
Inherits System.Web.UI.Page
Protected Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
************************************ I ADDED THE FOLLOWING***********************************
Dim objListItem As ListItem
Dim strCounties As String = " "
If ListBox1.SelectedIndex > -1 Then
For Each objListItem In ListBox1.Items
If objListItem.Selected Then
strCounties = strCounties &
"'" & objListItem.Text & "', "
End If
Next
strCounties = Left(Trim(strCounties), Len(Trim(strCounties)) - 1)
ListBox1.SelectedValue = strCounties
'ListBox1.SelectedValue = ListBox1.SelectedItem.ToString
End If
****************************END OF WHAT I ADDED******************************************
End Sub
Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
End Sub
Protected Sub SqlDataSourceListbox_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles SqlDataSourceListbox.Selecting
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub SqlDataSourceDataGridView_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles SqlDataSourceDataGridView.Selecting
End Sub
End
Class