0

中にイメージがあるリピーターがいます。たとえば、ランキングが1の場合は画像を表示し、2の場合は他の画像を表示するなど、ランキングに基づいて異なる画像を表示したいと思います。5種類の画像と5つのグレードもあります。

ランキングはデータセットの列です。しかし、私の関数は正しく機能せず、正しい結果を得ることができません。最初の写真のみを表示します。この操作に対してどのような解決策を提案しますか?

どうもありがとうございます 。

これは私のコードです

public string getimg()
{ 
    SqlConnection con = new SqlConnection("data source=.;database=site;integrated security=true;");
     string sSQL = "Select username ,weight,point , Rank() over(order by point desc) as 'ranking' from karbar order by point desc";  
     SqlCommand cmd = new SqlCommand(sSQL, con);
     SqlDataAdapter adapt = new SqlDataAdapter(cmd);
     DataSet ds = new DataSet();
     adapt.Fill(ds);
     foreach (DataRow myRow in ds.Tables[0].Rows)
     {
         if (Convert.ToInt32(myRow["ranking"]) == 1)

         { return "price/con1.png"; }
         else return "price/con2.png";
     }

     }

とそのhtml

  <div class="innerTitle">
                <img style="width:55px;height:55px" alt=""  src="<%# getimg() %>" />     </div>
                  <div class="innerContent" style=" width: 391px; direction:rtl ">
4

2 に答える 2

1

こんにちはあなたはこの答えで試すことができます

1関数を変更します

public string getimg(int indexRow)
{ 
}

2この選択コードを追加します

  if (Convert.ToInt32(myRow["ranking"]) == 1 
         && Convert.ToInt32(myRow["yourIndex"]) == indexRow ) //in order to select nice row
  {  
     return "price/con1.png"; 
  }

  return "price/con2.png";   

3通話では、選択するために、インデックス行をページに印刷する必要があります

img style="width:55px;height:55px" alt=""  src="<%# getimg(1) %>" />  //getimg(1) print first row.   

4インデックスを取得する

input type="hidden" runat="server" id="test" value="<%# DataBinder.Eval(Container.DataItem, "YourIndex") />%>" />
于 2012-08-02T08:34:45.557 に答える
0

これを試して:

Rank()の代わりに、row_number()関数を試してください

Select username ,weight,point , 
 ROW_NUMBER() over(order by point desc) as 'ranking'
 from karbar order by point desc

。2人のユーザーが同じランクを持っている場合、両方とも1としてランク付けされますが、row_number()を使用すると、1と2のランク付けが取得されます。

于 2012-08-02T08:36:09.860 に答える