• 14-02-2020, 16:12:29
    #1
    Arkadaşlar çektiğim verileri listbox içine aktarmak istediğimde program
    Alıntı
    Hata CS1503 1 bağımsız değişkeni: 'System.Collections.Generic.IEnumerable<string>' öğesinden 'System.Windows.Forms.ListBox.ObjectCollection' öğesine dönüştürülemiyor
    şeklinde hata veriyor kodlarım aşağıdaki gibi

     for (var i = 0; i < rowCount; i -= -100)
    {
    Task.Run(() =>
    {
    /* Item obj = new Item();
    obj.strText = "2121--" + i;//categories.categoryName.ToString();
    obj.strValue = "asdasd";// categories.categoryCode.ToString();
    this.CategoryList1.Items.Add(obj);*/
    
    CategoryList1.Items.AddRange(
    categoryService.getCategories(i, 100, true, true, true, "tr")
    .categories
    .Select(selector: p => $"{p.categoryName}"));
    });
                    }
  • 14-02-2020, 16:34:35
    #2
    servis tarafında getCategories methodunun dönüş tipi IEnumerable<string> AddRange methodu senden ListBox.ObjectCollection bekliyor.servisdeki methodun dönüş tipini bu şekilde güncelleyebilirsin
    alttaki gibi bişey de olabilir

    for (var i = 0; i < 300; i -= -100)
    {
    Task.Run(() =>
    {
    /* Item obj = new Item();
    obj.strText = "2121--" + i;//categories.categoryName.ToString();
    obj.strValue = "asdasd";// categories.categoryCode.ToString();
    this.CategoryList1.Items.Add(obj);*/

    var swCategories = categoryService.getCategories(i, 100, true, true, true, "tr");
    foreach (var category in swCategories)
    {
    // if statement
    CategoryList1.Items.Add(category);
    }
    //CategoryList1.Items.AddRange(
    //.categories
    //.Select(selector: p => $"{p.categoryName}"));
    });
    }
  • 14-02-2020, 16:37:54
    #3
    CategoryList1.Items.AddRange(
    categoryService.getCategories(i, 100, true, true, true, "tr")
    .categories
    .Select(selector: p => $"{p.categoryName}").Cast<object>().ToArray());
    Seçilen nesneyi, .Cast<object>().ToArray() şeklinde önce object 'e cast edip arraya dönüştürmen lazım

    AddRange metodu 1:ObjectCollection, 2bject[] türlerinde veri kabul ediyor sadece
  • 14-02-2020, 16:58:00
    #4
    InternettinHoca adlı üyeden alıntı: mesajı görüntüle
    CategoryList1.Items.AddRange(
    categoryService.getCategories(i, 100, true, true, true, "tr")
    .categories
    .Select(selector: p => $"{p.categoryName}").Cast<object>().ToArray());
    Seçilen nesneyi, .Cast<object>().ToArray() şeklinde önce object 'e cast edip arraya dönüştürmen lazım

    AddRange metodu 1:ObjectCollection, 2bject[] türlerinde veri kabul ediyor sadece
    çalıştırdığımda resimdeki gibi bir hata aldım

  • 14-02-2020, 18:02:49
    #5
    categoryService, getCategories, categories gibi propertyler'in null gelmediğinden emin olman lazım. değerlerden birisi null geliyor metod katarında
  • 14-02-2020, 23:04:09
    #6
    InternettinHoca adlı üyeden alıntı: mesajı görüntüle
    categoryService, getCategories, categories gibi propertyler'in null gelmediğinden emin olman lazım. değerlerden birisi null geliyor metod katarında
    Aşağıdaki kodlar çok yavaş çalışıyor ve her defasında 100 en fazla veri çekmiyor. toplam 5027 kategori var.

    try
    {
    CategoryList1.Items.Clear();
    GittiGidiyor.ConfigurationManager.setAuthParameters(config);
    GittiGidiyor.Category.CategoryService categoryService = ServiceProvider.getCategoryService();
    GittiGidiyor.Category.categoryServiceResponse CategoryResponse = categoryService.getCategories(0, 100, true, true, true, "tr");
    GittiGidiyor.Category.categoryType[] category = CategoryResponse.categories;
    
    var rowCount = CategoryResponse.categoryCount;
    
    foreach (GittiGidiyor.Category.categoryType categories in category)
    {
    Item obj = new Item();
    obj.strText = categories.categoryName.ToString();
    obj.strValue = categories.categoryCode.ToString();
    this.CategoryList1.Items.Add(obj);
    
    }
    
    }
    catch (Exception Ex)
    {
    label1.Text = Environment.NewLine + Ex.ToString();
    // MessageBox.Show(Environment.NewLine + Ex.ToString());
    }





    Aşağıdaki gibi bir çözüm buldum tüm verileri çekmek adına fakat burası da hata veriyor. hatamın çözümünü bulamadım
    try
    {
    CategoryList1.Items.Clear();
    GittiGidiyor.ConfigurationManager.setAuthParameters(config);
    GittiGidiyor.Category.CategoryService categoryService = ServiceProvider.getCategoryService();
    GittiGidiyor.Category.categoryServiceResponse CategoryResponse = categoryService.getCategories(0, 100, true, true, true, "tr");
    GittiGidiyor.Category.categoryType[] category = CategoryResponse.categories;
    
    var rowCount = CategoryResponse.categoryCount;
    
    int n = 1;
    for (var i = 0; i < 2; i -= -100)
    {
    Task.Run(() =>
    {
    CategoryList1.Items.AddRange(
    categoryService.getCategories(i, 100, true, true, true, "tr")
    .categories
    .Select(selector: p => $"{p.categoryName}").Cast<object>().ToArray());
    });
    }
    
    }
    catch (Exception Ex)
    {
    label1.Text = Environment.NewLine + Ex.ToString();
    // MessageBox.Show(Environment.NewLine + Ex.ToString());
    }
  • 15-02-2020, 11:05:48
    #7
    Hocam bende GG api entegrasyonu yapmıştım daha önce, burda ki sorunu db'ye kaydederek çözebilirsin, her seferinde ekrana bastırmak için bu işlem kullanıcını usandırır. Ayrıca sorgu yapmak ve cevabını beklemek bile başlı başına zaman kaybettirir size.

    Eğer işini görürse DB'ye çekebilir ve ekrana ordan alabilirsin, db'ni de belirli aralıklarla güncellemen gerekecek elbette