Approach you are following is not good, but still by doing as following your code will work.
foreach(ListItem i in listBox1.SelectedItem)
{
cmd.CommandText = "INSERT INTO TableName (columnName) VALUES('"+i.Text)+"')";
cmd.ExecuteNonQuery();
}
You can use either
i.Text
or
i.Value
as per your requirement.
You should have been done this as following.
Create a XML document for all the items and pass the xml to the DB, so that you can insert all the items in a single datbase trip.