Estoy Tratando de Usar SQL Para Sumar Una Columna en Mi Base de Datos de Acceso y Poner El Resultado...

download Estoy Tratando de Usar SQL Para Sumar Una Columna en Mi Base de Datos de Acceso y Poner El Resultado de Esto en Un Cuadro de Texto

of 30

Transcript of Estoy Tratando de Usar SQL Para Sumar Una Columna en Mi Base de Datos de Acceso y Poner El Resultado...

Estoy tratando de usar sql para sumar una columna en mi base de datos de acceso y poner el resultado de esto en un cuadro de texto.El cdigo que tengo es el siguiente, pero esto viene con el error abajo.Error: la conversin del tipo 'DBNull' al tipo 'Cadena' no es vlido.1. dbCommand = New OleDbCommand dbCommand.Connection = New OleDbConnection(DataBase) dbCommand.Connection.Open() dbCommand.CommandText = "SELECT SUM(TransactionAmount) FROM Transactions WHERE Budget='" & cmbBudget.Text & "'" Reader = dbCommand.ExecuteReader While Reader.Read TextBox1.Text = Reader.GetValue(0) End While La (base de datos) de referencia est funcionando correctamente, ya que hay una orden anterior de SQL encima de ste.Cualquier ayuda muy apreciada!!!Reader = dbCommand.ExecuteReaderReader declarado como qu?

Dim Reader as OleDbDataReader = dbCommand.ExecuteReader

Recuperacin de valores de SELECT SUM ... en VB.NET14 de julio 2010 22:17|ENLACEVarios productores tiene productos en un nmero de ubicaciones.sta funcin est destinada a recorrer todos los lugares a los productores especficos y suma todos los eventos de embalaje(packed_Qty)en todos los lugares de productores.I * pensar * Tengo la instruccin SELECT correcto, pero - no por primera vez - mi problema es conseguir que las cantidades de cada bucle y resumirlos en iTotalPackedOnLocsAyuda sera muy apreciada ya que necesito funciones similares para otros 3 mesas Funcin Pblica getCurrentGrowerPackedTotal () As Integer

Dim strConnString como secuencia = ConfigurationManager.ConnectionStrings ("tplatz_dk_dbConnectionString"). ConnectionString Conexin Dim As New SqlConnection (strConnString)

'Buscar el total de productos envasados para el productor

'Obtener la ubicacin-ids perteneciente al productor registrados en Iloc Dim As Integer () = funktioner.FindGrowerLocs (funktioner.getGrowerID)

Dim iPackedOnLoc As Integer ITotalPackedOnLocs Dim As Integer = 0

Para i = 0 To (funktioner.getGrowerMaxLocations - 1)

Comando Dim As New SqlCommand ("SELECT SUM (packed_Qty) AS DE packedTotal [tblPacked] WHERE ([packed_GrowerLocationId] = @ ubicacin)", la conexin) Dim param0 como nuevo SqlParameter ("location", System.Data.OleDb.OleDbType.Integer) param0.Value = Iloc (i) command.Parameters.Add (param0)

Connection.Open ()

'Problema: Para obtener el packedTotal para cada lazo y aadirlo a iTotalPackedOnLocs

Connection.close () command.Parameters.Clear ()

Prximo

ITotalPackedOnLocs Volver

End Function

Saludos cordialesTroels H. Platz Responder

sansanAll-Star53.932 Puntos8147 MensajesRe: Recuperar valores de SELECT SUM ... en VB.NET14 de julio 2010 22:47|ENLACEprobar este Connection.Open () Comando Dim As New SqlCommand ("SELECT SUM (packed_Qty) AS DE packedTotal [tblPacked] WHERE ([packed_GrowerLocationId] = @ ubicacin)", la conexin) Dim param0 como nuevo SqlParameter ("location", System.Data.OleDb.OleDbType.Integer) command.Parameters.Add (param0) Para i = 0 To (funktioner.getGrowerMaxLocations - 1) param0.Value = Iloc (i) iTotalPackedOnLocs + = Convert.ToInt32 (command.ExecuteScalar ()) command.Parameters.Clear () Prximo Connection.close () ITotalPackedOnLocs Volver

Santhosh Responder

sansanAll-Star53.932 Puntos8147 MensajesRe: Recuperar valores de SELECT SUM ... en VB.NET14 de julio 2010 22:58|ENLACEOtra opcin es calcular el total envasado en la propia consulta.usted puede conseguir de varias ubicaciones.comprobar esta consulta SELECT LOC.LOCATIONID DISTINCT, ISNULL (SUM (PACK.PACKEDQUANTITY) OVER (PARTITION BY PACK.LOCATIONID), 0) PACKEDQUANTITY FROM ( SELECT 1 LocationID UNIN SELECT 2 LocationID UNIN SELECT 3 LocationID) LOC LEFT OUTER JOIN (SELECCIONAR 1 LocationID, 10 PACKEDQUAN ENTITY UNIN SELECT 2 LocationID, 20 PACKEDQUAN ENTITY UNIN SELECT 2 LocationID, 30 PACKEDQUAN ENTITY UNIN SELECT 2 LocationID, 60 PACKEDQUAN ENTITY ) PAQUETE EN LOC.LOCATIONID = PACK.LOCATIONID - DONDE LOC.LOCATIONID en (1,2); Esto calcula PackedQuantity para una ubicacin y devuelve la ubicacin, assi obtiene del total de la consulta, puede pasar varias llamadas de base de datos porque se est llamando para cada ubicacin.si una consulta de este tipo, que es slo un acuerdo de tiempo para obtener el total de cada ubicacin.Santhosh Responder

TPlatzMiembro139 Puntos98 MensajesRe: Recuperar valores de SELECT SUM ... en VB.NET14 de julio 2010 23:11|ENLACEModificar el cdigo de la siguiente manera: Connection.Open ()

Comando Dim As New SqlCommand ("SELECT SUM (packed_Qty) AS DE packedTotal [tblPacked] WHERE ([packed_GrowerLocationId] = @ ubicacin)", la conexin) Dim param0 como nuevo SqlParameter ("location", System.Data.OleDb.OleDbType.Integer)

command.Parameters.Add (param0) param0.Value = Iloc (i) iTotalPackedOnLocs + = Convert.ToInt32 (command.ExecuteScalar ()) command.Parameters.Clear ()

Connection.close ()

Ahora me sale un error de la lnea con el ExecuteScalar:El objeto no se puede lanzar desde DBNull a otros tipos.Un poco de las pruebas indican que esto es debido a que algunos lugares(iLoc (i))en el TestDatabase todava no tiene ningn registro (cambiando el iLoc og ndice para un ndice con los registros reales funciona bien, excepto para multiplicar un poco a causa del bucle) .Ahora, cmo puedo manejar esto - Intente / excepcin catch / final intentarlo?Saludos cordialesTroels H. Platz Responder

TPlatzMiembro139 Puntos98 MensajesRe: Recuperar valores de SELECT SUM ... en VB.NET14 de julio 2010 23:18|ENLACESansan - su segunda sugerencia suena muy bien, pero por ahora voy a ir con la primera para seguir adelante con esto - el segundo tomar algn estudio, ya que el SQL usado est fuera de mi alcance, pero voy a trabajar en eso.Hasta ahora me concentrar sobre el manejo de los nulos errores con ubicaciones "vacos"Saludos cordialesTroels H. Platz Responder

sansanAll-Star53.932 Puntos8147 MensajesRe: Recuperar valores de SELECT SUM ... en VB.NET14 de julio 2010 23:20|ENLACEmi mal, pens que hay una clara relacin con la tabla de localizacin de los padreshacer estousted puede hacer incluso en la propia consulta,ISNULL (SUM (packed_Qty), 0) AS packedTotalpero el cdigo es mejor en este contexto Dim objTotal As New Object () objTotal = command.ExecuteScalar (); Si (objTotal! = DBNull.Value) Entonces iTotalPackedOnLocs + = Convert.ToInt32 (objTotal) End If; Santhosh Responder

TPlatzMiembro139 Puntos98 MensajesRe: Recuperar valores de SELECT SUM ... en VB.NET14 de julio 2010 23:29|ENLACECasi.Puedo ver cmo esto podra resolverlo, excepto que ahora da un error: "Se esperaba un identificador" al =! Dim objTotal As New Object () objTotal = command.ExecuteScalar () Si (objTotal! = DBNull.Value) Entonces iTotalPackedOnLocs + = Convert.ToInt32 (objTotal) End If

Saludos cordialesTroels H. Platz Responder

sansanAll-Star53.932 Puntos8147 MensajesRe: Recuperar valores de SELECT SUM ... en VB.NET14 de julio 2010 23:41|ENLACELamento que lo hice en c #cambiar esa lnea para Si objTotal System.DBNull.Value Entonces "En lugar de Si (objTotal! = DBNull.Value) Entonces Santhosh Responder

TPlatzMiembro139 Puntos98 MensajesRe: Recuperar valores de SELECT SUM ... en VB.NET14 de julio 2010 23:42|ENLACEBueno, probablemente me estoy cansando.Por ahora voy a ir con esto (que funciona, as que puedo dormir en paz) Funcin Pblica getCurrentGrowerPackedTotal () As Integer

Dim strConnString como secuencia = ConfigurationManager.ConnectionStrings ("tplatz_dk_dbConnectionString"). ConnectionString Conexin Dim As New SqlConnection (strConnString)

'Encuentra frdigvarer af totalen (embalado) para den aktuelle producent

Iloc Dim As Integer () = funktioner.FindGrowerLocs (funktioner.getGrowerID)

ITotalPackedOnLocs Dim As Integer = 0

Para i = 0 To (funktioner.getGrowerLocations - 1)

Connection.Open ()

Comando Dim As New SqlCommand ("SELECT ISNULL (SUM (packed_Qty), 0) AS DE packedTotal [tblPacked] WHERE ([packed_GrowerLocationId] = @ ubicacin)", la conexin) Dim param0 como nuevo SqlParameter ("location", System.Data.OleDb.OleDbType.Integer)

command.Parameters.Add (param0) param0.Value = Iloc (i)

iTotalPackedOnLocs + = Convert.ToInt32 (command.ExecuteScalar ())

command.Parameters.Clear () Connection.close ()

Prximo

ITotalPackedOnLocs Volver

End Function

Cmo utilizar Conde, Calcular sum (), Caluculate Max () en VB.NET?Archivados Foros V>IDE de Visual BasicPregunta

0Inicia una sesin para votarHola

Gracias por adelantado.

En VFP9 podemos utilizar los siguientes y cmo hacerlo con vb.net?

CONTAR PARA (wk_code = 'Iny') A abcd5CALCULAR SUMA (total_hr) PARA (emp_id = epidi1) A TOT1CALCULAR MAX (en_date) DE ((emp_id = epidi1) A etydt

--------------------------------------------En Vb.Net

Dim dbnd1 As New BindingSourcedbnd1.DataSource = DTB4 'Datatable para SEC-ID de?????????

U.PARANTHAMANMartes, 31 de marzo 2009 07:38 AM

Paramu2,070PointsRespuestas

2Inicia una sesin para votarEn voluminoso, se puede lograr un clculo equivalente a travs del mtodoDataTable.Compute.

Imports System.Data.OleDb

Public Class Form1

Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'En primer lugar llenar los datos de la tabla de base de datos en un objeto DataTable Con dvil como OleDbConnection = new OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; data source = D: \ MyDB.mdb") Dim cmd Como OleDbCommand = Nuevo OleDbCommand ("SELECT nombre de usuario de usertable", con) con.Open () Dim myda Como OleDbDataAdapter = Nuevo OleDbDataAdapter (cmd) Dim MyDataTable Como DataTable = Nuevo DataTable () myDA.Fill (MyDataTable) con.Close () Con = Nada 'Entonces usted puede utilizar myDataTable.Compute () para hacer algo End Sub

End Class

Un DataTable tiene un mtodoCompute() para obtener un valoragregadopara una columna se expresa en el siguiente formato.DataTable.Compute ("AggregateFunction (DataColumn)", "estado | Nada | null")

El mtodo Compute () se pasa dos argumentos en una lista separada por comas de valores de cadena.El primer argumento es el nombre de unAggregateFunction (),que tiene el nombre de unaDataColumnincluidos dentro paretheses;esta es la columna de DataSet en el que la funcin de agregado se aplica.El segundo argumento restringe los DataRows los que se accede.Si se utilizan todas las filas de la columna en la funcin, no hay restricciones, por lo que se pasa un valor nulo (o la palabra clave Nothing).De lo contrario, unacondicinse suministra para identificar que se seleccionan filas.Funciones de agregadodisponibles incluyen los que se muestran en la siguiente tabla.Promedio ()El promedio de los valores de una columna

Count ()El nmero de filas (valores) en una columna

Max ()El mayor valor de una columna

Min ()El menor valor en una columna

DesvEst ()La desviacin estndar de los valores en una columna

Sum ()La suma de los valores de una columna

Var ()La varianza estadstica de los valores de una columna

DataTable.Compute mtodohttp://msdn.microsoft.com/en-us/library/system.data.datatable.compute.aspx

Por favor, recuerde que debe marcar las respuestas como respuestas si ayudan y desmarcar ellos si no son de ayuda.Bienvenido al All-In-One Framework Code!Si usted tiene algn comentario, por favor dganos. Marcado como respuestaParamuMircoles, 01 de abril 2009 24:01Mircoles, 01 de abril 2009 11:08 AM

Martin Xie - MSFT24,160PointsTodas las respuestas

2Inicia una sesin para votarHola Paramu,

En VB.NET, puede ejecutar instruccin T-SQL de la siguiente muestra de cdigo para lograr las caractersticas equivalentes.

Requisitos: Drag & drop Button1, Button2 y Button3 hasta Form1.

Imports System.Data.OleDb

Public Class Form1

Private Sub (remitente de ByVal como System.Object, ByVal e As System.EventArgs) Handles Button1_Click Button1.Click Con dvil como OleDbConnection = new OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; data source = D: \ MyDB.mdb") Dim cmd Como OleDbCommand = Nuevo OleDbCommand ("SELECT COUNT (wk_code) DESDE usertable Dnde wk_code = 'Iny'", con) con.Open () Dim abcd5 Como Int32 = cmd.ExecuteScalar MessageBox.Show (abcd5) con.Close () Con = Nada End Sub

Private Sub (remitente de ByVal como System.Object, ByVal e As System.EventArgs) Handles Button2_Click Button2.Click Con dvil como OleDbConnection = new OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; data source = E: \ MyDB.mdb") Dim cmd Como OleDbCommand = Nuevo OleDbCommand ("SELECT SUM (total_hr) DESDE usertable Dnde emp_id = epidi1", con) con.Open () Dim TOT1 Como Int32 = cmd.ExecuteScalar MessageBox.Show (TOT1) con.Close () Con = Nada End Sub

Private Sub (remitente de ByVal como System.Object, ByVal e As System.EventArgs) Handles Button3_Click Button3.Click Con dvil como OleDbConnection = new OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; data source = E: \ MyDB.mdb") Dim cmd Como OleDbCommand = Nuevo OleDbCommand ("SELECT MAX (en_date) DESDE usertable Dnde emp_id = epidi1", con) con.Open () Dim etydt Como Int32 = cmd.ExecuteScalar MessageBox.Show (etydt) con.Close () Con = Nada End Sub

End Class

COMPUTE (Transact-SQL)http://msdn.microsoft.com/en-us/library/ms181708 (SQL.90). aspx{AVG | CUENTA | MAX | MIN | DesvEst | DESVESTP | VAR | VARP | SUM}

Saludos cordiales,Martin XieMircoles, 01 de abril 2009 10:54 AM

Martin Xie - MSFT24,160Points

2Inicia una sesin para votarEn voluminoso, se puede lograr un clculo equivalente a travs del mtodoDataTable.Compute.

Imports System.Data.OleDb

Public Class Form1

Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'En primer lugar llenar los datos de la tabla de base de datos en un objeto DataTable Con dvil como OleDbConnection = new OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; data source = D: \ MyDB.mdb") Dim cmd Como OleDbCommand = Nuevo OleDbCommand ("SELECT nombre de usuario de usertable", con) con.Open () Dim myda Como OleDbDataAdapter = Nuevo OleDbDataAdapter (cmd) Dim MyDataTable Como DataTable = Nuevo DataTable () myDA.Fill (MyDataTable) con.Close () Con = Nada 'Entonces usted puede utilizar myDataTable.Compute () para hacer algo End Sub

End Class

Un DataTable tiene un mtodoCompute() para obtener un valoragregadopara una columna se expresa en el siguiente formato.DataTable.Compute ("AggregateFunction (DataColumn)", "estado | Nada | null")

El mtodo Compute () se pasa dos argumentos en una lista separada por comas de valores de cadena.El primer argumento es el nombre de unAggregateFunction (),que tiene el nombre de unaDataColumnincluidos dentro paretheses;esta es la columna de DataSet en el que la funcin de agregado se aplica.El segundo argumento restringe los DataRows los que se accede.Si se utilizan todas las filas de la columna en la funcin, no hay restricciones, por lo que se pasa un valor nulo (o la palabra clave Nothing).De lo contrario, unacondicinse suministra para identificar que se seleccionan filas.Funciones de agregadodisponibles incluyen los que se muestran en la siguiente tabla.Promedio ()El promedio de los valores de una columna

Count ()El nmero de filas (valores) en una columna

Max ()El mayor valor de una columna

Min ()El menor valor en una columna

DesvEst ()La desviacin estndar de los valores en una columna

Sum ()La suma de los valores de una columna

Var ()La varianza estadstica de los valores de una columna

DataTable.Compute mtodohttp://msdn.microsoft.com/en-us/library/system.data.datatable.compute.aspx

Por favor, recuerde que debe marcar las respuestas como respuestas si ayudan y desmarcar ellos si no son de ayuda.Bienvenido al All-In-One Framework Code!Si usted tiene algn comentario, por favor dganos. Marcado como respuestaParamuMircoles, 01 de abril 2009 24:01Mircoles, 01 de abril 2009 11:08 AM

Martin Xie - MSFT24,160Points

0Inicia una sesin para votarMARTIN .... usted est dando excelentes servicios.!!!!!GRACIAS A LOS BONDAD ... !

Cmo utilizar SUM () en vb.net

he hacer 1 programa para registrar las horas de trabajo de los empleados, por lo que al final, tengo que utilizar mi programa para resumir todo el trabajo empleado en trabajo especfico no .....

i tratar algo de cdigo en vb.net pero rpido fuera el error (una excepcin no controlada del tipo 'System.Data.OleDb.OleDbException' en system.data.dll)

strSQL = "SELECT sum (HoursInMin) DESDE DONDE ProjectTable DepartmentName = 'Diseo' Y ProjectNo =" & FindTextBox.Text & ""

oledbcon.Open ()Dim cmd As New OleDbCommand (strSQL, OLEDBCON)cmd.ExecuteScalar () ---------- error en esta lneaoledbcon.Close ()

alguien me puede ayudar onl esto ..... thanx mucho

07-07-2005 a las 02:29 AM|

GoranNivel: Moderador

De registro: 16-05-2002Mensajes: 1652Re: Cmo utilizar SUM () en vb.net

De qu tipo es el campo ProjectNo?Es numrica?Intenta convertir explcitamente el valor de texto de tipo numrico que es el mismo que ProjectNo.

Tambin, declarar una variable que contendr el valor que se devuelve desde la funcin ExecuteScalar.

____________________________Si encuentras til la respuesta, por favor marque el tema como resuelto.

10-07-2005 a las 17:29|

MichaeleeNivel: Protg

De registro: 07-07-2005Mensajes: 4Re: Cmo utilizar SUM () en vb.net

mi ProjectNO en el acceso ms me puse al texto ..... i soluciona el error fuera pronta ya, pero en el TextBox1.Text no i no puede obtener la suma (TotalInMin) del comando, si mi codificacin es correcta?

11-07-2005 a las 12:45|

GoranNivel: Moderador

De registro: 16-05-2002Mensajes: 1652Re: Cmo utilizar SUM () en vb.net

Si se trata de un campo de tipo texto, entonces usted necesita para poner en valor entre comillas simples, como usted probablemente ha hecho, ya que dices que haya resuelto el error.

En cuanto a la indicacin del valor de retorno, es necesario declarar una variable que recibir el valor de retorno, como ya he dicho.Algo comoDim x como doble

x = cmd.executescalar ()TextBox1.Text = x.tostring

____________________________Si encuentras til la respuesta, por favor marque el tema como resuelto.

11-07-2005 a las 15:05|

fabulosoNivel: VB Guru

De registro: 08/03/2002Mensajes: 435Re: Cmo utilizar SUM () en vb.net

Otra manera que si usted va a estar recibiendo ms de un valor agregado a partir de la consulta (quizs los totales de 3 campos, y el promedio de otro), puede utilizar la propia consulta SQL para crear una columna que luego se puede leer de igual por lo que:'Poner una consulta como en el comando ...Dim sql As String = "select sum (HoursInMin) AS TotalTime,AS... "" El resto de los artculos vienen aqu'... Adelante en el cdigo ...Dim dr Como OleDbDataReader = cmd.ExecuteReader () 'estrecha conexin aqu'Consiga sus horas totales desde el lector de datosdr.Read ()Tiempo Dim As Double = dr ("TotalTime")'El resto de su cdigo ...

As como una nota, me encuentro en un caf internet y estoy de codificacin de aire, (codificacin de la parte superior de la cabeza), por lo que tendr que comprobar un par de cosas si se utiliza este cdigo (por ejemplo, el comportamiento CloseConnection del mtodo ExecuteReader (), no puedo recordar el nombre de la enumeracin por lo que tendr que comprobar esa parte.)

Feliz codificacin.

____________________________Mi jefe es un carpintero judo (Jesucristo)

Bench Cerebro Certificado VB.NET para desarrolladores

11-07-2005 a las 16:58|

MichaeleeNivel: Protg

De registro: 07-07-2005Mensajes: 4Re: Cmo utilizar SUM () en vb.net

En realidad, yo slo tengo que resumir 1 campo, im utilizando el mtodo que Goran muestran aqu, pero tengo pronta otro error out:"Excepcin no controlada del tipo 'System.Data.OleDb.OleDbException' en system.data.dll"

aqu est el cdigo:

Private Sub DesignTotalHours_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DesignTotalHours.Click

strSQL = "SELECT sum (HoursInMin) desde ProjectTable donde DepartmentName = 'Diseo' y ProjectNo =" & TotalHr.Text & ""

Si oledbcon.State = ConnectionState.Closed Entoncesoledbcon.ConnectionString = conoledbcon.Open ()End If

Dim cmd As New OleDbCommand (strSQL, OLEDBCON)

da = Nuevo OleDbDataAdapter (cmd)da.InsertCommand = cmd

Dim selectedProjNo As String = TotalHr.Text

Si No selectedProjNo es nada y selectedProjNo "" Entoncesda.InsertCommand.Parameters.Add ("& TotalHr.text &", OleDbType.VarChar, 50, "ProjectNo")da.InsertCommand.Parameters (0). Valor = selectedProjNoMs

MsgBox ("Por favor, introduzca Proyecto n", MsgBoxStyle.Critical, "Hojas de Global Mould Time")Exit SubEnd If

Dim JobHoursInMin As Integer

JobHoursInMin = da.InsertCommand.ExecuteScalar

Dim hr As Integer = Math.Floor (JobHoursInMin / 60)Dim min As Integer = JobHoursInMin Mod 60MinInTwoDigits Dim como secuencia

Si min.ToString.Length = 1 EntoncesMinInTwoDigits = "0" + min.ToStringMsMinInTwoDigits = min.ToString

End If

TextBox1.Clear ()

Dim strTotalHr As String = hr.ToString + ":" + MinInTwoDigits

TextBox1.Text = strTotalHr

DesignTotalHours.Enabled = False

Si oledbcon.State = ConnectionState.Open Entoncesoledbcon.Close ()da.Dispose ()oledbcon.Dispose ()End IfEnd Sub

Izzit nada malo en mi cdigo, por favor, dame algunos consejos .... thanx mucho .....

12-07-2005 en 12:31a.m.|

fabulosoNivel: VB Guru

De registro: 08/03/2002Mensajes: 435Re: Cmo utilizar SUM () en vb.net

Creo que esto es debido a la cuestin de que Goran menciona en su puesto, si su ProjectNo es un campo de texto, tendr que incluir el valor entre comillas simples, como as ...strSQL = "SELECT sum (HoursInMin) desde ProjectTable donde DepartmentName = 'Diseo' y ProjectNo=""y TotalHr.Text &"'"

Preste atencin a las comillas simples audaces antes y despus de la lnea TotalHr.Text.

Y slo para que yo pueda aclarar una cosa, la consulta va a evaluar ProjectNo pero el cdigo est dando horas totales.No es posible que se supone que para dar otro valor y el error podra estar llegando desde all.

____________________________Mi jefe es un carpintero judo (Jesucristo)

Bench Cerebro Certificado VB.NET para desarrolladores

12-07-2005 a las 14:41|

MichaeleeNivel: Protg

De registro: 07-07-2005Mensajes: 4Re: Cmo utilizar SUM () en vb.net

thanx fabuloso y Goran mucho, yo puedo obtener el valor total ya ......

el problema ya resolver de acuerdo con su comentario, becoz de la cotizacin ('') ............

muchas gracias en gran medida a la fabulosa y Goran

Sumar Valores de Base de Datos en Visual Basic .NETDesarrollo>Lenguaje VB.NETPregunta

0

Inicie sesin para votarBuenas noches, molestando nuevamente (*.*), bueno escribo para preguntar como se hace para que en el DataGridView se muestren las sumas de varios valores de elementos con las mismas caracteristicas, es decir, tengo esta tabla| ID | NombreEmpleado | DiaTrabajo | Ganancia || 01 | Juan Prez | 01/01/2013 | $100 || 01 | Juan Prez | 02/01/2013 | $120 || 02 |Jos Morelos | 01/01/2013 | $150 || 02 | Jos Morelos | 02/01/2013 | $300 || 03 |Vicente Prez | 01/01/2013 | $50 || 03 |Vicente Prez | 02/01/2013 | $50 |Y quiero que se muestre de la siguiente manera| ID | NombreEmpleado | Ganancia || 01 | Juan Prez | $220 || 02 |Jos Morelos | $450 || 03 |Vicente Prez | $100 |Como pueden ver reune la ganancia de los dos das de cada empleado y lo suma... cmo puedo hacer esto para mostrarlo en un DataGridView? De antemano, por sus respuestas gracias. Te falto esto End Using End Using End FunctionImagen

Pedro vila"El hombre sabio querr estar siempre con quien sea mejor que l."Lima - Permartes, 19 de marzo de 2013 14:25Responder|Citar|

Pedro vila (MAP)GlobalTech1.750Puntos

0

Inicie sesin para votarTambin puedes hacer la consulta de esta manera que te da el mismo resultadoPublic Shared Function CargarGrilla() As DataTable Using cn As SqlConnection = Conexion.Conectar("default") Using cmd As SqlCommand = cn.CreateCommand cmd.CommandText = "SELECT ID, Nombre, SUM(Ganancia) As Ganancia FROM Rin GROUP BY ID, Nombre" Using da As New SqlDataAdapter(cmd) Dim dt As New DataTable da.Fill(dt) Return dt End Using End Using End Using End Function

Pedro vila"El hombre sabio querr estar siempre con quien sea mejor que l."Lima - Per Propuesto como respuestaPedro vila (MAP)sbado, 23 de marzo de 2013 0:37martes, 19 de marzo de 2013 14:31Responder|Citar|

Pedro vila (MAP)GlobalTech1.750Puntos

0

Inicie sesin para votarGracias a Leandro Tuttini y a Pedro vila por responder, bueno creo que debo de pedirles una disculpa, creo que no me explique bien, lo que pasa es que ya me fije que en la base de datos los datos los tengo as| ID | NombreEmpleado | DiaTrabajo | Ganancia || 01 | Juan Prez | 01/01/2013 | $100 || 02 |Jos Morelos | 01/01/2013 | $150 || 03 | Juan Prez | 02/01/2013 | $120 || 04 |Vicente Prez | 01/01/2013 | $50 || 05 | Jos Morelos | 02/01/2013 | $300 || 06 |Vicente Prez | 02/01/2013 | $50 |Y quiero que se muestre de la siguiente manera| NombreEmpleado | Ganancia || Juan Prez | $220 || Jos Morelos | $450 || Vicente Prez | $100 |En donde el ID, corresponde a la entrada de los datos, es decir, el primer dato que se guardo es el 01, el segundo el 03, y as sucesivamente, no es el ID del Empleado, por lo cul yo estaba equivocada, es el nmero de ingreso de dato a la tabla.Supongo que por ello a m me marca el error y no me muestra lo que le pido. Ya he hecho como Pedro vila indica, pero siento que esa falta de explicar ese detalle que hasta ayer me puse analizar aqu en el Foro me di cuenta. Por ello le pido una disculpa si he descrito mal mi problema. Solo espero me puedan ayudar.jueves, 21 de marzo de 2013 22:59Responder|Citar|

Rin Sakuragi30Puntos

0

Inicie sesin para votarsi entendi bien, entonces solo deberias hacer estoselect NombreEmpleado as Empleado, SUM(Ganancia) As Ganancia FROM tuTablagroup by NombreEmpleadoy para mostrarlo tomare el ejemplo de pedro:... y creo que deberia ser todo saludos

Tambin puedes hacer la consulta de esta manera que te da el mismo resultadoPublic Shared Function CargarGrilla() As DataTable Using cn As SqlConnection = Conexion.Conectar("default") Using cmd As SqlCommand = cn.CreateCommand cmd.CommandText = "SELECT NombreEmpleado, SUM(Ganancia) As Ganancia FROM tuTabla GROUP BY NombreEmpleado" Using da As New SqlDataAdapter(cmd) Dim dt As New DataTable da.Fill(dt) Return dt End Using End Using End Using End Function

Pedro vila"El hombre sabio querr estar siempre con quien sea mejor que l."Lima - PerDescripcin de la tcnicaActiveX Data Objects (ADO) puede recuperar cinco tipos de datos diferentes del servidor: Conjunto de registros Nmero de registros modificados por una consulta de accin (como INSERT, UPDATE, DELETE o SELECT INTO) Mensaje informativo o advertencia Mensaje de error Valores de retorno y parmetros de salida del procedimiento almacenadoCuando lea el resultado de una instruccin SQL por lotes, puede utilizar el mtodoNextResultpara poner elDataReaderen el siguiente resultado del conjunto de resultados.

RequisitosEn la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Packs recomendados que necesitar: Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server o Windows NT 4.0 Server Microsoft Visual Studio .NET Microsoft SQL Server 7.0 o posteriorEn el presente artculo se da por supuesto que est familiarizado con los temas siguientes: Visual Studio .NET Fundamentos y sintaxis de ADO.NETCrear el proyecto y agregar cdigoEste ejemplo de cdigo utiliza la tabla Authors de la base de datos de ejemplo Pubs.1. Pegue las instrucciones siguientes en la herramienta Analizador de consultas de SQL o en la utilidad ISQL:2. CREATE PROC MyProc3. AS4. SELECT * FROM Authors5. SELECT * FROM Authors WHERE State = 'CA'6. GO 7. Abra Visual Studio .NET.8. Cree un nuevo proyecto de aplicacin para Windows de Visual Basic.9. Asegrese de que el proyecto contiene una referencia al espacio de nombresSystem.Datay, si no es as, agregue una.10. Ponga un botnCommanden Form1. Cambie la propiedadNamedel botn abtnTesty cambie la propiedadTextaProbar.11. Utilice la instruccinImportsde los espacios de nombresSystem,System.Data.OleDbySystem.Data.SqlClientde forma que no tenga que suministrar declaraciones de estos espacios de nombres ms adelante en el cdigo. Agregue el cdigo siguiente en la seccin General Declarations de Form1:12. Imports System13. Imports System.Data.OleDb14. Imports System.Data.SqlClient15. Agregue el cdigo siguiente despus de la regin "Cdigo generado por el Diseador de Windows Forms" en la ventana de cdigo:

NotaDebe cambiar el Id. de usuario junto a User ID y la contrasea junto a Password por los valores correctos antes de ejecutar este cdigo. Asegrese de que el Id. de usuario tiene los permisos apropiados para realizar esta operacin en la base de datos.16. Private Sub btnTest_Click(ByVal sender As System.Object, _17. ByVal e As System.EventArgs) Handles btnTest.Click18. Dim myConnString As String = _19. "User ID=;Password=;Initial Catalog=pubs;Data Source=myServer"20. Dim myConnection As New SqlConnection(myConnString)21. Dim myCommand As New SqlCommand()22. Dim myReader As SqlDataReader23. 24. myCommand.CommandType = CommandType.StoredProcedure25. myCommand.Connection = myConnection26. myCommand.CommandText = "MyProc"27. Dim RecordCount As Integer28. 29. Try30. myConnection.Open()31. myReader = myCommand.ExecuteReader32. While myReader.Read()33. 'Write logic to process data for the first result.34. RecordCount = RecordCount + 135. End While36. MessageBox.Show("Total number of Authors: " & RecordCount.ToString)37. 38. myReader.NextResult()39. RecordCount = 040. 41. While myReader.Read()42. 'Write logic to process data for the second result.43. RecordCount = RecordCount + 144. End While45. MessageBox.Show("Authors from California: " & RecordCount.ToString)46. Catch ex As Exception47. MessageBox.Show(ex.ToString())48. Finally49. myConnection.Close()50. End Try51. End Sub52. Modifique la cadena de conexin (myConnString) de acuerdo con su entorno.53. Guarde el proyecto. En el menDepurar, haga clic enIniciary ejecute el proyecto.54. Haga clic enProbar. Observe que los cuadros de mensajes muestran los datos devueltos por el procedimiento almacenado.ReferenciasPara obtener informacin adicional acerca de cmo llamar a procedimientos almacenados, haga clic en el nmero de artculo siguiente para verlo en Microsoft Knowledge Base:306574Cmo utilizar Visual Basic .NET para llamar a los procedimientos almacenados de SQL Server desde ASP.NETPara obtener informacin adicional acerca del control de errores, haga clic en el nmero de artculo siguiente para verlo en Microsoft Knowledge Base:308043Cmo obtener errores del proveedor subyacente utilizando ADO.NET en Visual Basic .NETPara obtener informacin adicional acerca de os parmetros y los procedimientos almacenados, haga clic en el nmero de artculo siguiente para verlo en Microsoft Knowledge Base:308051PRB: o se devuelven parmetros de salida cuando ejecuta un comando de ADO.NET en Visual Basic .NETPara obtener ms informacin acerca de los objetos de ADO.NET y su sintaxis, consulte lo siguiente en la documentacin del Kit de desarrollo de software (SDK) de Microsoft .NET Framework:Accessing Data with ADO.NET