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?

puedo usar una sola realtime database de firebase con varias aplicaciones android?

Voy a empezar un proyecto que consta de 3 apps las mismas están relacionadas entre si , es decir necesitan acceder a los mismos datos, he buscado en la documentación de firebase y no pude encontrar si puedo conectar estas tres app y quiza una pagina web a la misma base de datos en firebase o como hacerlo

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#

¿ como ingresar varias listas dentro de un diccionario?

¿ si tengo varias listas como hago para meterla en un diccionario el cual tiene su clave; lo que busco es que esas listas entren dentro de una lista. ejemplo:{cuenta_usuario:[password[amigos],[solicitudes],[mensajes],[intereses]}. nose si se puede realizar de esta forma, si me desean colaborar enviaría el avance de mi código, es para una red socia.

VISUAL STUDIO, Hay manera de almacenar una porción de código para utilizar varias veces sin repetir todo el codigo?

Buen Día, Tengo varios textbox y todos deben llevar este código en el evento de KeyPress

    If e.KeyChar = ChrW(Keys.Enter) Then          e.Handled = True         SendKeys.Send("{TAB}")      End If 

Me preguntaba si hay alguna manera de almacenar el código bajo un alias o alguna otra manera, para luego solo copiar en alias en el evento y se ejecute la acción y así poder mantener el código más limpio.

Disculpen lo básico de la pregunta!

Como convertir varias filas de una columna en una lista dentro de un dataframe

Sucede que tengo 2 columnas que se interrelacionan: la primera son nombres y la segunda son conteos de entradas de esa persona en un gimnasio a la semana.

en la primer columna los nombres se repiten cuantas veces haya entrada en la segunda variable, así:

     c1  nom  entr        0    0   E    1   1    1   A    2   2    2   B    5   3    3   A    3   4    4   C    6    

existen repeticiones entre nombres con muchos valores en las entradas al gimnasio que se verían de esta forma:

     nom   entr 28   A    6 1    A    2 30   A    1 3    A    3 23   A    1 5    A    7 6    A    9 26   A    8 33   B    4 34   B    6 14   B    9 36   B    8 9    B    3 7    B    1 2    B    5 10   C    7 37   C    9 4    C    6 

En este caso en vez de ver cada letra repitiéndose me gustaría ver solo 1 letra y las entradas al lado de esta, algo como esto:

supongamos que yo quiero ver la media de las entradas por nombre sería algo así

        entr nom           A    4.625000 B    5.142857 C    5.400000 D    3.833333 E    4.785714  

esto mismo es lo que me gustaría ver pero con cada entrada, más o menos así pero con los valores reales

              entr nom           A    1:2:3:5:7:8:10 B         1:2:4:7:8 C             1:6:9 D    1:2:3:5:7:8:10 E    1:2:3:5:7:8:10  

¿cómo podría hacerlo?

Uso de Varias Pantallas

Buen dia,

El caso es que tengo un sistema de turnos desarrollado en PHP. El sistema tiene una interfaz donde sacas tu ticket a travez de un touch y otra pantalla que es un televisor, donde salen los turnos para que se acercen a caja a pagar.

PROBLEMA: Para que todo funcione de manera correcta, el televisor siempre debe estar encendido, si se apaga el televisor, la imagen se monta a la otra, lo que pasa en windows siempre que desconectamos nuestras segunda pantalla.

Mi pregunta es, si existe alguna solucion para decirle que: Si se enciende la pantalla 2 que automaticamente el navegador firefox(Donde esta el sistema) se vaya al monitor 2, y si no se detecta un segundo monitor, que no se abra el navegador.

Desconosco si el propio firefox trae opciones de varias pantallas.. que se yo algo asi como:

/firefox.exe -url “sistema.com” -screen 2

solo es un ejemplo.

Y si conocen alguna otra solucion, por favor informar.

Gracias!