folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Sqlcommandbuilder Update Sorunu



Sqlcommandbuilder Update Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    erngnctrk
    erngnctrk's avatar
    Kayıt Tarihi: 10/Eylül/2012
    Erkek

    merhabalar,


    da = new SqlDataAdapter("select c.ClientID,c.AdiSoyadi as Müşteri, "
    +"p.AdiSoyadi as Personel,c.KayitTarihi,c.Adres,c.AdresTarifi, "
    +"c.OzelTercihler,c.Telefon1,c.EMail,c.Cinsiyet,c.Aciklama "
    +"from tbl_Clients c inner join tbl_Personnel p on c.PersonelID=p.PersonelID "
    +"where ClientID='" + AramaID + "'", con);
    dt = new DataTable();
    cmdbu = new SqlCommandBuilder(da);
    cmdbu.DataAdapter.Fill(dt);
    gridMusteriList.DataSource = dt;

    şimdi ben table'ımın üzerinde alttaki kodla üzerinde değişiklikleri update etmeye çalişiyorum fakat sorun veriyor alttaki kod.

    cmdbu.DataAdapter.Update(dt);

    inner joinden kaynaklanıyor heralde birden çok table birbirine bağlı oldugu için.

    verdiği hata kodu:Dynamic SQL generation is not supported against multiple base tables.

    bunu nasil çözerim.

     


    .
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    ilk gördüğüm hata türkçe karakterler.. hocam neden kullanıyorsun türkçe karakterleri? Müşteri ne demek :) 

    aralarda boşluk varsa ya da türkçe karakter varsa bunları köşeli parantezlere almak lazım [ ]   bu şekilde dene.. eğer hala aynıysa özel mesajdan

    team id-pass ver bağlanıp bakayım


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    erngnctrk
    erngnctrk's avatar
    Kayıt Tarihi: 10/Eylül/2012
    Erkek
    unbalanced bunu yazdı

    ilk gördüğüm hata türkçe karakterler.. hocam neden kullanıyorsun türkçe karakterleri? Müşteri ne demek :) 

    aralarda boşluk varsa ya da türkçe karakter varsa bunları köşeli parantezlere almak lazım [ ]   bu şekilde dene.. eğer hala aynıysa özel mesajdan

    team id-pass ver bağlanıp bakayım

    sorun turkce karakterden değil.ister istemez arada kaçıyor türkçe karakter :D

    geç oldu açık degilsindir heralde müsait bizamanda hallederiz inş :D


    .
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    burdayım hocam.. türkçe karakterler ya da boşluklarda [] kullanılır :)

    neyse yolla id yi bakalım

    +

    tez zamanda entity framework a geçmeni tavsiye ederim.. 


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    erngnctrk
    erngnctrk's avatar
    Kayıt Tarihi: 10/Eylül/2012
    Erkek
    unbalanced bunu yazdı

    burdayım hocam.. türkçe karakterler ya da boşluklarda [] kullanılır :)

    neyse yolla id yi bakalım

    +

    tez zamanda entity framework a geçmeni tavsiye ederim.. 

    eli öpülesi adasın :D

    geçecem inş :)


    .
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    est. sorunla ilgili belki aynı problemi yaşayanlar çıkabilir. burada net olarak görülmese de

    iki tabloyu aynı anda güncellemeye çalışıyor, oysa commandbuilder sadece tek tabloyu destekliyor güncelleme,silme ve ekleme işlemlerinde.

    o yüzden kendi sql kodlarını yazmak zorundasın


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    erngnctrk
    erngnctrk's avatar
    Kayıt Tarihi: 10/Eylül/2012
    Erkek
    unbalanced bunu yazdı

    est. sorunla ilgili belki aynı problemi yaşayanlar çıkabilir. burada net olarak görülmese de

    iki tabloyu aynı anda güncellemeye çalışıyor, oysa commandbuilder sadece tek tabloyu destekliyor güncelleme,silme ve ekleme işlemlerinde.

    o yüzden kendi sql kodlarını yazmak zorundasın

    olayı hocam ın dediği gibi çözdüm kodlar altta birine lazım olur belki. :D

    try

                {

                    string strQuery = string.Empty;

                    DataTable dtChanges;

                    DataTable dtEmployee = (DataTable)dataGridViewUrunListele.DataSource;

                    SqlCommand objCmd = new SqlCommand();

                    dtChanges = dtEmployee.GetChanges(DataRowState.Modified);

                    if (dtChanges != null)

                    {

                        con.Open();

                        objCmd.Connection = con;

                        for (int i = 0; i < dtChanges.Rows.Count; i++)

                        {

                            strQuery = "UPDATE tbl_Product SET ";

                            strQuery += "UrunKodu = '" + dtChanges.Rows[i]["UrunKodu"].ToString() + "', ";

                            strQuery += "UrunAdi = '" + dtChanges.Rows[i]["UrunAdi"].ToString() + "', ";

                            strQuery += "Aciklama = '" + dtChanges.Rows[i]["Aciklama"].ToString() + "', ";

                            strQuery += "Fiyat = '" + dtChanges.Rows[i]["Fiyat"].ToString() + "' ";

                            strQuery += "WHERE ProductID = '" + dtChanges.Rows[i]["ProductID"].ToString() + "'";

                            objCmd.CommandText = strQuery;

                            objCmd.ExecuteNonQuery();

                        }

                        dtChanges = null;

                    }

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.ToString());

                }

                finally

                {

                    con.Close();

                    MessageBox.Show("Güncelleme Yapıldı!!!");

                }


    .
Toplam Hit: 1003 Toplam Mesaj: 7