如何在C#中有条件地验证SQL数据

时间:2014-05-26 12:21:37

标签: c# mysql validation

I have this code 
 public static DataSet tipopromocion(string id_edificio,string date_from, string date_to)
    {
        DataSet tipo = new DataSet();

        MySqlConnection con = new MySqlConnection(connectionstring);
        string tipo_promo = "select pr.tipo_promocion from promocion_edificio pe inner join inventario i on i.id_edificio = pe.id_edificio inner join promocion pr on pe.id_promocion=pr.id_promocion where i.id_edificio = '" + id_edificio + "' and i.fecha between '" + date_from + "' and Date_Sub('" + date_to + "',interval 1 Day) and i.fecha between pe.inicio_promo AND pe.fin_promo and date(now()) between pe.inicio_alojamiento and pe.fin_alojamiento AND ( FIND_IN_SET('A',pe.tipo)) group by  pe.id_promocion order by pr.valor_promocion desc";
        MySqlCommand cmd13 = new MySqlCommand(tipo_promo, con);
        MySqlDataAdapter da13 = new MySqlDataAdapter(cmd13);
        da13.Fill(tipo);
        return tipo;                               
    }

tipo_promonic
-------------
porcentaje
porcentaje
fixed
discount
porcentaje
discount
discount
fixed
fixed
porcentaje
porcentaje

上面的结果就像上面的表格现在我正在尝试检查" tipo_promonic"列包含一些行,所以我正在检查" tipo_promonic"列包含porcentaje,固定,折扣然后转到某些功能,它转到另一个功能确定,但​​在" tipo_promonic"列包含许多重复值,以便如何检查条件。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:3)

尝试使用DISTINCT关键字重新构建SQL查询以避免重复记录

string tipo_promo = "select DISTINCT pr.tipo_promocion from promocion_edificio pe inner     ..."

尝试使用DataReader

MySqlConnection con = new MySqlConnection(connectionstring);
string tipo_promo = "select DISTINCT pr.tipo_promocion from promocion_edificio pe inner.."
MySqlCommand cmd13 = new MySqlCommand(tipo_promo, con);
DataReader dr = cmd13.ExecuteReader();
while(dr.Read())
{
  if(dr[0].ToString() == "YourOption")
  {//Do this;}
}

答案 1 :(得分:0)

这是一个数据表。您可以根据需要了解DataAdapterDataset。这基本上是一个循环,它检查每一行的特定列的值。

foreach (DataRow dr in dataTable.Rows)
{
    if (dr["typo_promonic"].Equals("porcentaje"))
    {
          //your code here.
    }
    else if (dr["tipo_promonic"].Equals("discount"))
    {
          //your code here.
    }
    else
    {
          //your code here.
    }
}

您可以根据自己的选项添加更多else...if。无论你想做什么,你都可以在这些代码块中完成。