Q:

Conversão de tipo dando errado

Estou com um problema de conversão de dados quando passa pelo For Each, acusa que o item "vl_maodeobra" não pode ser convertido de String para o tipo Integer. O prolema é que não importa a conversão que eu tente fazer da o mesmo erro, só mudando a mensagem, por exemplo: não pode ser convertido de String para Double ou para Decimal. 
O item "vl_maodeobra" retorna números com virgula, decimais e a Query abaixo retorna os dados corretamente. O erro só aparece quando passa na linha vl_mo_total += mObra.Rows("vl_maodeobra").ToString().
Eu estou tentando Somar o valor da mão de obra para cada linha que retornar da query.
SB = New System.Text.StringBuilder
SB.Append(" Select a.vl_maodeobra ")
SB.Append(" from garantia a ")
SB.Append(" where a.dt_exclusao is null ")
SB.Append(" and a.dt_inclusao >= to_date('01/01/2013', 'dd/mm/yyyy') ")
SB.Append(" and a.cd_laudo = 21 ")
SB.Append(" and cd_tipo_garantia <> 'C' ")
SB.Append(" and a.vl_total > 0 ")
SB.Append(" and a.nu_lote = " & LO.ToString & " ")
SB.Append(" and a.cd_concessionario = 5 ")
Dim mObra As DataTable = DB.CreateDataTable(SB.ToString)

If mObra.Rows.Count >= 1 Then
   Dim vl_mo_total As Double = 0
   For Each currow2 As DataRow In mObra.Rows
      vl_mo_total += mObra.Rows("vl_maodeobra").ToString()
   Next

A:

Experimenta isto:
If mObra.Rows.Count >= 1 Then
   Dim vl_mo_total As Double = 0
   For Each currow2 As DataRow In mObra.Rows
      vl_mo_total += Convert.ToDouble(currow2("vl_maodeobra")) //esta é uma forma simplificada
   Next
End If

Coloquei no GitHub para referência futura.
Pode ser que precisa de alguma adaptação na conversão dependendo do que você precisa e de como esta dado é retornado.
Mas ainda fica a questão, você trabalha com valor monetário com o tipo Double? Espero que tenha sido apenas um teste.

