¿Cómo sumar las columnas seleccionadas en un Datagridview en C#

Tengo un DataGridView que se va cargando con una base de datos. Me gustaría saber cómo puedo hacer para sumar solo las comunas seleccionadas.

Por ejemplo si tuviese el siguiente DataGridView:

id_venta        fechaVenta    Total    1             01-01-2019    2500   2             02-01-2019    3500   3             03-01-2019    2760   4             04-01-2019    7500   5             05-01-2019    9500 

Y quisiese solamente sumar los valores que yo seleccione de la columna total.

Obtener valores de un DataGridView

Hola amigos estoy renderizando valores de una tabla de sql en un datagridview y necesito tomar los datos de cada celda en cada row cuando le click a la row , estuve trantado de hacer esto, pero devuelve vacio.

Aquí lleno la tabla

 using (DBEnt db = new DBEnt())         {             db.AspNetUsers.Load();               dataGridViewPF.DataSource =                  db.AspNetUsers.Select                 (x => new { Id = x.Id, Email = x.Email, UserName = x.UserName }).ToList();         } 

y aquí es donde quiero cachar lo valores, ahorita solo estoy tratando de tomar el de una celda, pero necesito de toda la row y aún así no me esta tirando nada

private void DataGridViewPF_CellContentClick(object sender, DataGridViewCellEventArgs e) {         MessageBox.Show("yeah");         foreach (DataGridViewRow row in dataGridViewPF.SelectedRows)         {              MessageBox.Show("yeah"+ row.Cells[0].Value.ToString());         }     } } 

me devulve

“yeah “

Capturar el id de una o varias celdas de un DataGridView para SMS Masivos

Añadí un CheckBox al DataGridView para poder seleccionar varios items y así pasarlos a un Array para poder enviar mensajes de manera masiva.

Problema 1: presionar sobre el CheckBox no se tilda. Cabe mencionar que lo único que hice fue agregarlo desde las propiedades de edición del DataGridView.

Problema 2: para enviar mensajes de manera masiva se utiliza el siguiente bloque en string:

string bloque = ""; bloque = bloque + "ID1\t112223333\tMensaje\n"; 

Pero, yo necesito enviar esos mensajes de manera automática. Es decir que, a excepción del mensaje o texto, el ID y el TELÉFONO se deben cargar y/o asignar seleccionando uno o varios CheckBoxes del DataGridView. Para esto, cree la siguiente clase:

class Datos     {         public int id { get; set; }         public string celular { get; set; }         public string texto{ get; set; }          public Datos() { }         public Datos(int id, string cel, string texto) {             this.id = id;             this.celular = cel;             this.texto= texto;         }          public string toString() {             return "ID"+id+"\t" + celular + "\t" + texto + "\n";         }     } }//el objetivo será utilizarla para cargar un array luego 

Ahora, este es actualmente el código de la interfaz:

public partial class Form1 : Form{         public Form1(){             InitializeComponent();             dtgId.AllowUserToAddRows = false;         }         private void Form1_Load(object sender, EventArgs e){             llenarId();             dtgId.ReadOnly = true;         }          public void llenarId(){//método para poblar el DataGridView             try{                 string cadena = "cadena";                 using (SqlConnection con = new SqlConnection(cadena)){                     con.Open();                     string query = "SELECT id FROM clientes GROUP BY id";                     SqlCommand cmd = new SqlCommand(query, con);                     SqlDataAdapter da = new SqlDataAdapter(cmd);                     DataSet ds = new DataSet();                     da.Fill(ds);                     dtgId.DataSource = ds.Tables[0];                     con.Close();                 }             }             catch (SqlException ex){                 MessageBox.Show("Error: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);             }         }          private void button2_Click(object sender, EventArgs e){//Código para enviar SMS de manera masiva             string usuario = "usuario";             string clave = "clave";             string respuesta = "";             int id = Convert.ToInt32(txtId.Text);             string telefono = txtNumero.Text;             string texto = txtTexto.Text;             List<Datos> item = new List<Datos>();             Datos datos = new Datos(id, telefono, texto);             item.Add(datos);             string bloque = "";             //bloque = bloque + "ID1\t1144444444\tMi texto 1\n";             for (int i = 0; i > item.Count; i++){                 bloque += item[i].toString();             }              Uri uri = new Uri("uri");              HttpWebRequest requestFile = (HttpWebRequest)WebRequest.Create(uri);             requestFile.Method = "POST";             requestFile.ContentType = "application/x-www-form-urlencoded";             StringBuilder postData = new StringBuilder();             postData.Append("api=" + System.Web.HttpUtility.UrlEncode("1") + "&");             postData.Append("usuario=" + System.Web.HttpUtility.UrlEncode(usuario) + "&");             postData.Append("clave=" + System.Web.HttpUtility.UrlEncode(clave) + "&");             postData.Append("separadorcampos=" + System.Web.HttpUtility.UrlEncode("tab") + "&");             postData.Append("bloque=" + System.Web.HttpUtility.UrlEncode(bloque) + "&");              byte[] byteArray = Encoding.GetEncoding("iso-8859-1").GetBytes(postData.ToString());              requestFile.ContentLength = byteArray.Length;              Stream requestStream = requestFile.GetRequestStream();             requestStream.Write(byteArray, 0, byteArray.Length);             requestStream.Close();              HttpWebResponse webResp = requestFile.GetResponse() as HttpWebResponse;              if (requestFile.HaveResponse){                 if (webResp.StatusCode == HttpStatusCode.OK || webResp.StatusCode == HttpStatusCode.Accepted){                     StreamReader respReader = new StreamReader(webResp.GetResponseStream(), Encoding.GetEncoding("iso-8859-1"));                     respuesta = respReader.ReadToEnd();                     MessageBox.Show(respuesta);                 }             }         }          private void dtgId_CellContentClick(object sender, DataGridViewCellEventArgs e){ //con este método al presionar sobre un checkbox se muestra el id y el teléfono en un TextBox             var row = dtgId.Rows[e.RowIndex];             var id = Convert.ToInt32(row.Cells["id"].Value.ToString());             try{                 string conn = "cadena";                 using (SqlConnection con = new SqlConnection(conn)){                     con.Open();                     string sql = "SELECT id,celular FROM clientes WHERE id=@id";                     SqlCommand cmd = new SqlCommand(sql, con);                     cmd.Parameters.AddWithValue("@id", id);                     SqlDataReader reader = cmd.ExecuteReader();                     if (reader.Read()){                         txtId.Text = reader["id"].ToString();                         txtNumero.Text = reader["celular"].ToString();                     }                 }             }catch (SqlException exc){                 MessageBox.Show("Error: " + exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);             }         }     } } 

Para resumir la idea: No envía los mensajes, es decir no me han llegado. ¿Alguna idea de cómo puedo solucionarlo?

Sumando el total de la misma columna DataGridView – CellEndEdit

Trabajo con Visual Studio 2019, Windows Forms

Tengo un DataGridView en el cual voy poniendo las cantidades por denominación de la moneda al momento que voy ingresando las cantidades voy multiplicando el valor * cantidad ese resultado va en la columna SubTotal pero a la vez también voy sumando esa columna subtotal.

El problema es que cuando llego a la última fila ingreso la cantidad pero ya no me hace las operaciones que mencione al presionar enter ya no hay mas filas y no puede salir del evento CellEndEdit la única manera es presionando la tecla TAB pero eso ya lo trabajaría en otro evento del DGV como el KeyDow

Este es el código que ocupo.

private void DgvRecuento_CellEndEdit(object sender, DataGridViewCellEventArgs e)         {             int index = dgvRecuento.CurrentRow.Index;             if (index < dgvRecuento.Rows.Count - 1)             {                 decimal valor = Convert.ToDecimal(dgvRecuento.Rows[index].Cells["colValor"].Value);                 decimal cantidad = Convert.ToDecimal(dgvRecuento.Rows[index].Cells["colCantidad"].Value);                 var resultado = valor * cantidad;                 dgvRecuento.Rows[index].Cells["colSubTotal"].Value = resultado;                 decimal recuento =                     dgvRecuento.Rows.Cast<DataGridViewRow>().Sum(x => Convert.ToDecimal(x.Cells["colSubTotal"].Value));                 lblTotalRecuento.Text = $  "{recuento:N2}";                 lblRecuento.Text = $  "{recuento:N2}";                 decimal descuadre = _efectivoCaja - recuento;                 lblDescuadre.Text = $  "{descuadre:N2}";             }         } 

¿De que manera lo puedo solucionar?

Saludos!

Recorrer DataGridView

tengo el sig. codigo para recorrer un DataGridView en el evento DoubleClick, cuando selecciono la fila y hago el dobleclick me arroja siempre el mensaje aunque el valor de la columna stockeable sea “S”, es decir lo que necesito es que si el valor de la celda de la columna stockeable es “S”me copie el parametro al formulario fjdCompras pero si contiene otro dato distinto de “S” que no me copie nada y arroje el mensaje de error. Alguien me podria ayudar con el codigo. Muchas gracias

foreach (DataGridViewRow row in dataListado.Rows) { if (Convert.ToString(row.Cells["stockeable"].Value) == "S") { fjdCompras frmComprasA = fjdCompras.GetInstancia(); string parCA1; parCA1 =Convert.ToString(this.dataListado.CurrentRow.Cells["idproducto"].Value); frmComprasA.setProducto(parCA1); this.Hide(); } else { MessageBox.Show("El artículo seleccionado no es stockeable", "Consulta de Artículos" + MessageBoxIcon.Error, MessageBoxButtons.OK); } } 

Cómo puedo obtener datos de una columna con varias filas de datagridview y guardar en SQL server

Tengo un problema, quisiera guardar la columna de varias filas de un dgv en la base de datos sql… Ejemplo En la dgv
|ID | | Detalle |.
1 Polo.
2 Camisa.
3 Bermuda

Quisiera guardarlo en mi tabla de SQL de esta manera |ID | |Detalle|.
1 polo, camisa , bermuda

Espero haberme explicado

Lo estoy realizando en c#

Foco en DataGridView

desde un boton necesito lograr que se haga el foco en la primera fila de mi DataGridView de tal manera que pueda recorrer automaticamente las filas con la tecla cursor abajo y arriba sin la necesidad de realizar un click con el mouse en una de las filas para poder usar el cursor de arriba y abajo, es decir, luego de presionar el boton comienzo a recorrer directamente con el cursor del teclado.

Muchas gracias de antemano sds

Poner en edición una celda de DataGridView desde el evento Load de un formulario

Trabajo con Windows Forms, Visual Studio 2019

Tengo la necesidad de poner en edición una celda del DataGridView desde el evento load del formulario.

He intentado de la siguiente manera

private void FrmRecuento_Load(object sender, EventArgs e)     {         int index = 0;         Utilidades.CentrarFrm(this);         lblEfectivoCaja.Text = Convert.ToString(_efectivoCaja);         LoadDgvRecuento();         if (dgvRecuento.Rows.Count > 0 && dgvRecuento.CurrentRow != null)         {             dgvRecuento.SelectionMode = DataGridViewSelectionMode.FullRowSelect;             index = dgvRecuento.CurrentCell.RowIndex;             dgvRecuento.CurrentCell = dgvRecuento.Rows[index].Cells["colCantidad"];             dgvRecuento.BeginEdit(true);         }      } 

El problema que tengo es que no queda en estado de edición la celda que indico, no se como tomar el index de la primera fila del DGV.

¿Como puedo solucionarlo? Saludos!

Cómo pasar datos de un datagridview a un datatable (incluyendo una imagen) en vb.net?

Así la cuestión. Tengo una datagridview donde tengo cargados todos los productos y otro datagridview donde incluyo los productos a los cuales les quiero imprimir codigo de barra. En ese datagrid tengo cod, desc, lab, pres, medida, barcode (esta ultima es de tipo imagecolumn) como columnas. Lo que quiero es pasar todos los datos del segundo datagrid a un datatable para usarlo en un reporte de crystal reports.

Gracias de antemano