asp.net objectdatasource找不到方法

时间:2013-04-29 17:07:38

标签: asp.net oop objectdatasource

我有一个使用业务层使用objectdatasource.Objectdatasource的datalist。

dataworks.cs

  public static List<Yorum> SerchYorumlariGetir(string tag)
    {
        List<Yorum> yorum_listesi = new List<Yorum>();



        try
        {
            using (SqlConnection baglanti = new SqlConnection(dbconnect()))
            {

                SqlCommand komut = new SqlCommand("sp_search_yorum_getir", baglanti);
                komut.CommandType = CommandType.StoredProcedure;
                komut.Parameters.AddWithValue("@tag", tag);

                Yorum yorum = default(Yorum);


                baglanti.Open();
                using (SqlDataReader dr = komut.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    while (dr.Read())
                    {
                        yorum = new Yorum();
                        yorum.Yorum_ID = dr.GetInt32(dr.GetOrdinal("comment_id"));
                        yorum.Post_ID = dr.GetInt32(dr.GetOrdinal("comment_post_id"));
                        yorum.User_ID = dr.GetGuid(dr.GetOrdinal("comment_user_id"));
                        yorum.Yorum_UserName = dr.GetString(dr.GetOrdinal("UserName"));
                        yorum.Yorum_Text = dr.GetString(dr.GetOrdinal("comment_text"));
                        yorum.Yorum_Like = dr.GetInt32(dr.GetOrdinal("comment_like"));
                        yorum.Yorum_Dislike = dr.GetInt32(dr.GetOrdinal("comment_dislike"));
                        yorum.Yorum_ReplyTo_ID = dr.GetInt32(dr.GetOrdinal("comment_reply_to_id"));
                        yorum.Yorum_Date = dr.GetDateTime(dr.GetOrdinal("comment_date"));
                        yorum.Yorum_Post_Etiket = dr.GetString(dr.GetOrdinal("post_etiket"));
                        yorum.Yorum_Profil_Foto_Kucuk = dr.GetString(dr.GetOrdinal("profil_foto_kucuk"));
                        yorum.Yorum_Profil_Foto_Buyuk = dr.GetString(dr.GetOrdinal("profil_foto_buyuk"));
                        yorum_listesi.Add(yorum);
                    }
                    dr.Close();
                }
            }
        }
        catch (Exception ex)
        {

            throw ex;
        }
        return yorum_listesi;
    }

和yonet.cs

    public static List<Yorum> TagYorum(string tag)
   {
       return data_works.SerchYorumlariGetir(tag);
   }

和objectdatasource

  <asp:ObjectDataSource ID="ods_search_yorumlar" runat="server" TypeName="yonet"  SelectMethod="TagYorum">
            <SelectParameters>
            <asp:QueryStringParameter Type="String" QueryStringField="tag"  />
            </SelectParameters>
  </asp:ObjectDataSource>    

我在其他页面上使用此方法。并且没有错误,但在此页面上它抛出了这个错误:

ObjectDataSource 'ods_search_yorumlar' could not find a non-generic method 'TagYorum' that has no parameters.

我无法理解为什么会这样。

1 个答案:

答案 0 :(得分:2)

您需要将Name添加到QueryStringParameter,这对应于您的函数的参数名称:

<asp:QueryStringParameter Type="String" DefaultValue="0"
QueryStringField="tag" Name="tag"/>