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"列包含许多重复值,以便如何检查条件。请帮我解决这个问题。
答案 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)
这是一个数据表。您可以根据需要了解DataAdapter
或Dataset
。这基本上是一个循环,它检查每一行的特定列的值。
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
。无论你想做什么,你都可以在这些代码块中完成。