Hola
valderramalex, no es necesario que ejecutes la consulta en cada iteración de tu for, puedes hacer lo siguiente :
Código vb:
Ver original'Primero ejecutas la consulta
ejecutaradapter("SELECT * from T_Productos WHERE Id_Cotizacion=('" & TextBox1.Text & "')")
adapter.Fill(dataset)
'Luego recorres todos los datos que trae dicha consulta
For x = 0 To dataset.Tables(0).Rows.Count
TextBox4.Text = dataset.Tables(0).Rows(x)(0).ToString
TextBox4.Text = TextBox4.Text & dataset.Tables(0).Rows(x)(1).ToString
TextBox4.Text = TextBox4.Text & dataset.Tables(0).Rows(x)(2).ToString
TextBox4.Text = TextBox4.Text & dataset.Tables(0).Rows(x)(3).ToString
TextBox4.Text = TextBox4.Text & dataset.Tables(0).Rows(x)(4).ToString & vbCrLf
Next
Saludos!

.