Ahora se entiende un poco mejor. Siempre es preferible que postees los códigos sin abreviarlos, porque de lo contrario no podemos ver lo que realmente estás haciendo.
Bueno, estás usando la clase SqlCommand, y esta tiene una propiedad denominada Paremeters, que se usa para lo que te digo: insertar directamente los datos en su formato nativo, con lo cual no tienes que hacer ninguna conversión que pueda acusar errores si no está correctamente hecha.
En el manual de referencia on-line tendrás un claro ejemplo del uso de los parametros en un objeto SqlCommand:
http://msdn.microsoft.com/es-es/libr...code-snippet-1
Este es el ejemplo que tiene esa págica, como para que lo vayas viendo:
Código vb:
Ver originalPrivate Sub UpdateDemographics(ByVal customerID As Integer, _
ByVal demoXml As String, _
ByVal connectionString As String)
' Update the demographics for a store, which is stored
' in an xml column.
Dim commandText As String = _
"UPDATE Sales.Store SET Demographics = @demographics " _
& "WHERE CustomerID = @ID;"
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(commandText, connection)
' Add CustomerID parameter for WHERE clause.
command.Parameters.Add("@ID", SqlDbType.Int)
command.Parameters("@ID").Value = customerID
' Use AddWithValue to assign Demographics.
' SQL Server will implicitly convert strings into XML.
command.Parameters.AddWithValue("@demographics", demoXml)
Try
connection.Open()
Dim rowsAffected As Integer = command.ExecuteNonQuery()
Console.WriteLine("RowsAffected: {0}", rowsAffected)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Sub
En este caso lo único que debes hacer es insertar en donde van los parámetros la propiedad Value del DateTimePicker (ver manual de referencia también:
http://msdn.microsoft.com/en-us/libr...vs.110%29.aspx)
Fuera de eso, siempre conviene hacer una prueba manual en la base de datos con la consulta real, y con datos reales, a fin de depurar los aspectos del SQL. Te lo recomiendo. En esencia es escribir en la interfaz de SQL Server la query tal y como la usarás en la aplicación, reemplazando los parámetros por valores reales y probar que no falle.
Recién después de esa prueba (o las correcciones necesarias), la copias y la usas en el programa.
Respecto a las limitaciones del GROUP BY, también es mejor consultar el manual de referencia antes que nada:
http://technet.microsoft.com/es-es/l.../ms177673.aspx