none
Update' de Türkçe Karakter Sorunu RRS feed

  • Soru

  • Arkadaşlar merhaba... Veritabanımdaki verileri, textbox'lara çağırıp update işlemi yaptığımda, türkçe karakterlerde sorun oluyor... Şöyle ki; "ş,ç,ğ,ı,ü,ö" harfleri "s,c,g,u,o" şeklinde değişiyor... Sebebi neden kaynaklanıyor olabilir? 
    30 Nisan 2013 Salı 19:35

Tüm Yanıtlar

  • 1) sql nvarchar olarak tanımla değişkenlerini

    2)Asp.net web configde 

     <globalization uiCulture="tr" culture="tr-TR" fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>

    bu globazition kullanırsan sorun heralde kalkar

    30 Nisan 2013 Salı 19:45
  • bunu denemiştim... lakin yine bi değişiklik olmadı... tekrar denedim, yine bi değişiklik olmadı :)
    30 Nisan 2013 Salı 19:51
  • Bizde ayni sorunla karşilastik ve boyle cozduk.İki madddeyi de yaptın mı?

     <globalization requestEncoding="iso-8859-9" 
    responseEncoding="iso-8859-9"" culture="tr-TR" uiCulture="tr" 
    fileEncoding="iso-8859-9" /> bunuda deneyebilirisn.

    30 Nisan 2013 Salı 19:54
  • evet iki maddeyi de yaptım ve iki globalization seçeneğini de uyguladım... ilginç olan; yeni veri girerken hiçbir sorun yok, sadece update ettiğimde gidiyor tükçe karakterler...
    30 Nisan 2013 Salı 20:09
  • Sayfnın için ozel aktif kultur mu yazilmiş acaba;

    Update ajax json gibi bir seylemi yapıyon yoksa normal sayfa postback olup geliyormu?

    son soru windowsun  dili ne?

    1 Mayıs 2013 Çarşamba 05:40
  • protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["haberlerYonetim"].ConnectionString);
                    SqlCommand cmd = new SqlCommand("select  Id,haberBaslik,haberOzet,haberMetin from haberlerYonetimTable where Id=@Id", cnn);
                    cmd.Parameters.AddWithValue("@Id", Request.QueryString["Id"]);
                    cnn.Open();
                    SqlDataReader dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        txtHaberBaslikGetir.Text = dr["haberBaslik"].ToString();
                        txtHaberOzetGetir.Text = dr["haberOzet"].ToString();
                        txtHaberMetinGetir.Text = dr["haberMetin"].ToString();
                    }
                    dr.Close();
                    cnn.Close();
                }
            }
    
            protected void btnHaberGuncelle_Click(object sender, EventArgs e)
            {
                SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["haberlerYonetim"].ConnectionString);
                SqlCommand cmd = new SqlCommand("update haberlerYonetimTable set haberBaslik='" + txtHaberBaslikGetir.Text + "',haberOzet='" + txtHaberOzetGetir.Text + "',haberMetin='" + txtHaberMetinGetir.Text + "' where Id=@Id ", cnn);
                cmd.Parameters.AddWithValue("@Id", Request.QueryString["Id"]);
                cnn.Open();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                da.Fill(ds);
                cnn.Close();
                Response.Redirect("haberler.aspx");
            }
    
            protected void btnHaberSil_Click(object sender, EventArgs e)
            {
                SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["haberlerYonetim"].ConnectionString);
                SqlCommand cmd = new SqlCommand("Delete FROM haberlerYonetimTable where Id=@Id", cnn);
                cmd.Parameters.AddWithValue("@Id", Request.QueryString["Id"]);
                cnn.Open();
                cmd.ExecuteNonQuery();
                cnn.Close();
                Response.Redirect("haberler.aspx");
            }
    
        }
    kodlarım burada... ajax, json vs kullanmıyorum.. windows dilim türkçe... :) 
    • Düzenleyen Başar Şen 1 Mayıs 2013 Çarşamba 07:37
    1 Mayıs 2013 Çarşamba 07:35
  • konuyla ilgisi olmayabilir ama, where şartına parametreleri parameters.add ile ekliyorsun da neden update ettiğin alanları string birleştirme ile hazırlıyorsun?

    Konuya dönersek, Şu an web config de ve sayfanın en üstünde globalization tanımları ne durumda? aspx kısmının ilk 10 satırını da gönderir misin? ayrıca sayfa şu an canlı biyerde çalışıyorsa link verebilir misin?


    Burak SARICA

    1 Mayıs 2013 Çarşamba 09:00
  • string billeştirmeyi, database'deki o habere ait alanları textbox'ta gösterebilmek için yaptım... 

    ya aslında mantık hatalarım olabilir, ki illaki vardır... ilk yönetim panelim bu... doğrusunu öğrenmeye çalışıyorum bi yandan zor oluyor :) işler çok birikti o yüzden bu kadar acele :)

    şimdi konuya gelelim...

    web config dosyam şu şekilde....

    <configuration>
      <connectionStrings>
        <add name="haberlerYonetim" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Basar\Desktop\yonetimPaneli\haberlerYonetim\haberlerYonetim\App_Data\haberlerYonetim.mdf;Integrated Security=True;"
          providerName="System.Data.SqlClient" />
        
      </connectionStrings>
      <system.web>
        <globalization uiCulture="tr" culture="tr-TR" fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>
        <compilation debug="true" targetFramework="4.0" />
        
      </system.web>
    
    </configuration>
    

    aspx sayfam ise şu şekilde...

    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        <div style="padding: 30px;">
            <table style="border: 0px;">
                <tr>
                    <td>Haber Başlığı:
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:TextBox runat="server" ID="txtHaberBaslikGetir" Width="300px" />
                    </td>
                </tr>
                <tr>
                    <td>Haber Özeti: <%--<span style="color: red; font-size: 12px;">*Bu kısım, anasayfada gösterilecek kısımdır. (Maksimum 350 karakter.)</span>--%>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:TextBox runat="server" ID="txtHaberOzetGetir" TextMode="MultiLine" Width="300px" Height="100px" MaxLength="350" />
                    </td>
                </tr>
                <tr>
                    <td>Haber Metni:  <%--<span style="color: red; font-size: 12px;">*Bu kısım, detay sayfasında gösterilecek kısımdır.</span>--%>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:TextBox runat="server" ID="txtHaberMetinGetir" TextMode="MultiLine" Width="300px" Height="300px" />
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:LinkButton runat="server" ID="btnHaberGuncelle" CssClass="btn btn-warning" Style="width: 290px; margin-top: 20px;" OnClick="btnHaberGuncelle_Click"><i class="icon-ok icon-white"></i>&nbsp Haberi Güncelle</asp:LinkButton>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:LinkButton runat="server" ID="btnHaberSil" CssClass="btn btn-danger" OnClick="btnHaberSil_Click" Style="width: 290px;" OnClientClick="return confirm('Silmek istediğinize emin misiniz?');"><i class="icon-remove icon-white"></i>&nbsp Haberi Sil!</asp:LinkButton>
                    </td>
                </tr>
                <tr>
                    <td style="text-align: right;">
                        <a href="haberler.aspx" class="btn btn-inverse" style="width: 290px;"><i class="icon-remove-sign icon-white"></i>&nbsp İptal</a>
                    </td>
                </tr>
            </table>
        </div>
    </asp:Content>
    

    1 Mayıs 2013 Çarşamba 09:32
  • Acaba sql sunucunuzun collation ayarları değişik olabilirmi?, update sorgunuzun arkasına "COLLATE Turkish_CI_AS" ekleyip denermisiniz. Pek alakalı olmayabilir ama bir deneyin isterseniz. Garip bir durum.

    update tablo1 set alan1 = 'bıdıbıdı' where id = 1 COLLATE TURKISH_CI_AS


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC


    1 Mayıs 2013 Çarşamba 09:52
    Moderatör
  • denedim Önay Bey.. Yine olmadı...
    1 Mayıs 2013 Çarşamba 09:58
  • peki edit forumu sayfanızın browser deki html kaynağını paylaşırmısınız. 

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    1 Mayıs 2013 Çarşamba 10:00
    Moderatör
  • ben en iyisi projeyi kendi subdomain'ime yükleyeyim... fakat web.config'de database imi nasıl tanımlayabilirim?

    çünkü upload ettim... hata veriyor web.config dosyası.. database'i göremediği için...

    1 Mayıs 2013 Çarşamba 10:04
  • Debuggur kullanarak giden degerlere  bak visual Studioyla bide sql profilerdan bak bakalım 

    karakter nerde degistirliyor boylece soruna bir adim yaklaşmış oluruz

    1 Mayıs 2013 Çarşamba 10:04
  • buyurun Önay Bey...

    <%@ Page Title="" Language="C#" MasterPageFile="~/admin.master" AutoEventWireup="true" CodeBehind="haberler.aspx.cs" Inherits="haberlerYonetim.haberler" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
        <style type="text/css">
            td {
                width: 80px;
            }
    
            table {
                margin-bottom: 0px !important;
            }
        </style>
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        <div id="yeni-giris">
            <%--<button onclick="location.href='haber-ekle.aspx'" class="btn btn-success"><i class="icon-plus-sign icon-white"></i>&nbsp Yeni Haber Girişi</button>--%>
            <a href="haber-ekle.aspx" class="btn btn-large btn-info" style="width: 180px;"><i class="icon-edit icon-white"></i>&nbsp Yeni Haber Girişi</a>
        </div>
        <div style="clear: both;"></div>
        <div id="icerik-baslik">
            Haberler Listesi
        </div>
        <div class="icerik">
            <table class="table table-hover" style="margin-bottom: 15px;">
                <tr style="border-bottom: 2px solid gray;">
                    <td style="font-size: 12px; font-weight: bold; width: 20px;">#
                    </td>
                    <td style="font-size: 12px; font-weight: bold;">Haber Başlık
                    </td>
                    <td style="font-size: 12px; font-weight: bold;">Ekleme Tarihi
                    </td>
                    <td style="font-size: 12px; font-weight: bold;">Komutlar
                    </td>
                </tr>
            </table>
            <asp:Repeater runat="server" ID="tekrarlaHaber">
                <ItemTemplate>
                    <table class="table table-hover">
                        <tr>
                            <td style="width: 20px;"><%#Eval("Id") %></td>
                            <td><%#Eval("haberBaslik") %></td>
                            <td><%#Eval("haberTarih") %></td>
                            <td><a href="haber-duzenle.aspx?Id=<%#Eval("Id") %>">Güncelle / Detaylar</a></td>
                        </tr>
                    </table>
                </ItemTemplate>
            </asp:Repeater>
        </div>
        <div class="aciklama-panel">
            <span style="font-size: 16px; margin-bottom: 10px; font-weight: bold;"><i class="icon-info-sign icon-white"></i>&nbsp AÇIKLAMA</span><br />
            <br />
            Haberler sayfasında gösterilen haberler yandaki listedeki gibidir.
            <br />
            <br />
            <span style="color: orange">Değiştirmek</span> veya <span style="color: #990000">silmek</span> istediğiniz haber varsa, haberin
            yanındaki "Güncelle / Detaylar" linkine tıklayarak, haberinizin detay sayfasına gidebilir, değiştirme ve silme işleminizi gerçekleştirebilirsiniz.
            <br />
            <br />
            Yeni haber girişi yapmak istiyorsanız, listenin sağ üst kısmındaki <span style="color: #00baf7;">"Yeni Haber Girişi"</span> butonuna tıklayarak işleminizi gerçekleştirebilirsiniz.
        </div>
    </asp:Content>
    

    1 Mayıs 2013 Çarşamba 10:24