• 29-10-2013, 21:59:24
    #1
    Merhaba,
    Sayfamda müşterileri GridView kontrolü ile listeledim ama ben kategorisine göre listelesin istiyorum.

     DataTable dtMusteriler = system.GetDataTable("exec mustericek");
            dlMusteriler.DataSource = dtMusteriler;
            dlMusteriler.DataBind();
    bu şekilde hepsini çağırıyor.

    İstediğim aslında repeaterla yapabiliyorum. Sayfayı KategoriId ile çağırıp repeaterla gösteriyorum ama sayfayı sil baştan yeniden yapmak istemiyorum. Ve GridView kontrolundede mümkünmü koşul öğrenmek istiyorum.

    repeaterla
            DataTable dtMusteriler = system.GetDataTable("Select * from Musteriler Where MusteriKategoriId=" + MusteriKategoriId);
            rpMusteriler.DataSource = dtMusteriler;
            rpMusteriler.DataBind();
    istediğimi yapıyorum.

    Select * from Musteriler Where MusteriKategoriId=" + MusteriKategoriId
    bu koşulu yukarıdaki datalist GridView "exec mustericek" de nasıl yapabilirim. koşullu çağıramıyorum hepsi geliyor.
  • 29-10-2013, 22:15:33
    #2
    datatable in selectcommand özelliği olması lazım

    dtMusteriler.selectcommand diye gerisine google da bakmanız lazım
  • 30-10-2013, 00:15:18
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Sen o datatable'a ne çekersen grid, listview, repeater ..vs hepsi çektiğin veriyi gösterir.
    DataTable dtMusteriler = system.GetDataTable("Select * from Musteriler Where MusteriKategoriId=" + MusteriKategoriId);
    Burdan gelen datatable'ı gridview source'una bağlarsan kategoriye göre göstermiş olursun.
    Senin sorunun "exec mustericek" dedigin herneyse ona kategoriId gönderememek mi?
  • 30-10-2013, 01:14:23
    #4
    hocam o dediğini yaptım zaten kategori id yi gönderemiyorum yoksa düz alıyor senin yazdığın gibi yani bana
    DataTable dtMusteriler = system.GetDataTable("exec mustericek");
    dlMusteriler.DataSource = dtMusteriler;
    dlMusteriler.DataBind(); bu sorguya ilave edebilirmisin?

    exec musteri cekli sorygu da hepsi geliyor kategoriid ekleyemiyorum
  • 30-10-2013, 11:24:15
    #5
    mustericek storedprocederu mu?

    Parametre göndererek sql'den veri çekebilmen için basit bir örnek yazıyorum.
    List<SqlParameter> sp = new List<SqlParameter>();
                sp.Add(new SqlParameter("@kategoriId", SqlDbType.Int) { Value = _kategoriId });
                try
                {
                    DataTable dt = ReturnDT("mustericek", sp.ToArray());
                    if (dt != null && dt.Rows.Count > 0)
                    { return dt; }
                    else { return null; }
                }
                catch (Exception ex)
                {
                    string error = "error" + ex.Message;
                    return null;
                }
    
    public DataTable ReturnDT(string sp, params SqlParameter[] sqlParam)
            {
                DataTable dt = new DataTable();
                SqlConnection conn = new SqlConnection(connection);
                SqlCommand cmd = new SqlCommand(sp, conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Clear();
                if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken)
                    conn.Open();
    
                try
                {
                    if (sqlParam != null)
                    {
                        cmd.Parameters.AddRange(sqlParam);
                    }
    
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    SqlDataReader dr = cmd.ExecuteReader();
                    dt.Load(dr);
                    return dt;
                }
                catch (Exception ex)
                {
                    throw new Exception("Error: " + ex.Message);
                }
                finally
                {
                    cmd.Dispose();
                    conn.Close();
                }
            }
  • 30-10-2013, 21:06:06
    #6
    yapamadım hocam

    sayfa kodlarım bu entegre edebilirmisin?

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    
    public partial class Admin_Musterilerilistele : System.Web.UI.Page
    {
    
        public static string KategoriId = "";
        Fonksiyon system = new Fonksiyon();
        string islem = "";
        string MusteriId = "";
        protected void Page_Load(object sender, EventArgs e)
        {
            MusteriKategoriId = Request.QueryString["MusteriKategoriId"];
            islem = Request.QueryString["islem"];
            MusteriId = Request.QueryString["MusteriId"];
    
            if (islem == "Sil")
            {
                system.cmd("Delete from Musteriler Where MusteriId=" + MusteriId);
                Response.Redirect("Musteriler.aspx");
            }
    
            DataTable dtMusteriler = system.GetDataTable("exec mustericek");
            dlMusteriler.DataSource = dtMusteriler;
            dlMusteriler.DataBind();
    
    
        }
        protected void dlMusteriler_RowCommand(object sender, GridViewCommandEventArgs e)
        {
    
            Response.Redirect("Musterilerilistele.aspx");
            system.cmd("Delete from Musteriler Where MusteriId=16");
            // Response.Redirect("Musteriler.aspx");
    
        }
    }
  • 31-10-2013, 16:53:55
    #7
    dtMusteriler.Select()

    detaylar

    http://www.dotnetperls.com/datatable-select
  • 31-10-2013, 20:47:19
    #8
    yine olmadı yapamadım, sayfa kodlarını paylaştım benim için koşulu yazamazmısınız
  • 04-11-2013, 00:47:18
    #9
    Öncelikle yazdığımda bir yanlışlık varsa düzelt !
    Sen kategori id sine göre müşterileri getirmek istiyorsun. Müşteri tablon da kategori id sini tutuyorsun. QueryStringte de kategori id si döndürüyorsun.

    DataTable dtMusteriler = system.GetDataTable("exec
    dlMusteriler.DataSource = dtMusteriler;
    dlMusteriler.DataBind();

    yukarıdaki kodu

    DataTable dtMusteriler = system.GetDataTable("select * from TBL_MUSTERI where KategoriID='"+MusteriKategoriID+"' ");
    dlMusteriler.DataSource = dtMusteriler;
    dlMusteriler.DataBind();

    olarak değişince o kategoriye ait müşterileri getirmiş olacak. Kodlamanda da sadece bir satır değişmiş olacaksın sayfa yapısı bozulmayacak.