保存到数据库时从数据网格中跳过空单元格

时间:2017-09-12 21:33:38

标签: c# datagrid

我有一个包含8列的数据网格,前6列是从SQL表填充的,最后2列是由用户填写并保存到另一个表中,用户将输入数字数据(double);如何在跳过用户留下黑色的单元格时立即保存两列数据。  目前我能够将数据保存到数据库,但它要求所有单元格都有数据或至少为零。我使用以下代码:

using (SqlConnection conn = Conexion.Conectado()) 
    for (int i = 0; i < Dgv_registro_pagos.Rows.Count - 0; i++)
       {

       String GuardarBD = "Insert into Registro_pagos (Monto_pago, fk_prestamo_id, Mora, fecha_pago) Values (@Monto_pago, @fk_prestamo_id, @Mora, @fecha_pago) ";

       SqlCommand cmd = new SqlCommand(GuardarBD, conn);

       cmd.CommandType = CommandType.Text;


       cmd.Parameters.AddWithValue("@fk_prestamo_id", Dgv_registro_pagos.Rows[i].Cells[2].Value);
       cmd.Parameters.AddWithValue("@Monto_pago", Dgv_registro_pagos.Rows[i].Cells[8].Value);
       cmd.Parameters.AddWithValue("@Mora", Dgv_registro_pagos.Rows[i].Cells[9].Value);
       cmd.Parameters.AddWithValue("@fecha_pago", DateTime.Now);


       cmd.ExecuteNonQuery();

       conn.Close();
      }

1 个答案:

答案 0 :(得分:0)

    {
        using (SqlConnection conn = Conexion.Conectado())
            for (int i = 0; i < Dgv_registro_pagos.Rows.Count - 0; i++)
            {
                if (Dgv_registro_pagos.Rows[i].Cells[8].Value != null &&
                     Dgv_registro_pagos.Rows[i].Cells[9].Value != null)
                {
                    String GuardarBD = "Insert into Registro_pagos (Monto_pago, fk_prestamo_id, Mora, fecha_pago) Values (@Monto_pago, @fk_prestamo_id, @Mora, @fecha_pago) ";

                    SqlCommand cmd = new SqlCommand(GuardarBD, conn);

                    cmd.CommandType = CommandType.Text;


                    cmd.Parameters.AddWithValue("@fk_prestamo_id", Dgv_registro_pagos.Rows[i].Cells[2].Value);
                    cmd.Parameters.AddWithValue("@Monto_pago", Dgv_registro_pagos.Rows[i].Cells[8].Value);
                    cmd.Parameters.AddWithValue("@Mora", Dgv_registro_pagos.Rows[i].Cells[9].Value);
                    cmd.Parameters.AddWithValue("@fecha_pago", DateTime.Now);


                    cmd.ExecuteNonQuery();

                    conn.Close();
                }
            }
    }