Forms Projemde TextBoxların sadece bir tanesi Metin belgesine kaydediliyor?

 private void btnDosyayaSatırEkle_Click(object sender, EventArgs e)
        {
            //1-string dosya_adresi = @"C:\Users\YILDIRAY\Desktop\Projeİçin.txt";
            //1-string tümleme = txbYazmaMarka.Text + "-"+txbYazmaModel.Text + "-"+ txbYazmaÜretimYılı.Text +"-"+ txbYazmaPlaka.Text +"-"+ txbYazmaMotorGücü.Text;
            //1-StreamWriter streamWriter = new StreamWriter(dosya_adresi,true);
            //1-streamWriter.WriteLine(tümleme);
            //1-streamWriter.Close();
            string dosya_adresi = @"C:\Users\YILDIRAY\Desktop\Projeİçin.txt";

            ArabalarınÖzellikleri12 arabalarınÖzellikleri = new ArabalarınÖzellikleri12//()
            {
                AracınMarkası = txbYazmaMarka.Text,
                AracınModeli = txbYazmaModel.Text,
                AracınÜretimYılı = Convert.ToInt32(txbYazmaÜretimYılı.Text),
                AracınPlakası = txbYazmaPlaka.Text,
                AracınMotorgücü = Convert.ToDecimal(txbYazmaMotorGücü.Text)
            };
            //arabalarınÖzellikleri.AracınMarkası = txbYazmaMarka.Text;
            //arabalarınÖzellikleri.AracınModeli = txbYazmaMarka.Text;
            //arabalarınÖzellikleri.AracınÜretimYılı = Convert.ToInt32(txbYazmaÜretimYılı.Text);
            //arabalarınÖzellikleri.AracınPlakası = txbYazmaPlaka.Text;
            //arabalarınÖzellikleri.AracınMotorgücü = Convert.ToDecimal(txbYazmaMotorGücü.Text);


            StreamWriter streamWriter = new StreamWriter(dosya_adresi, true);
            streamWriter.WriteLine(arabalarınÖzellikleri.AracınMarkası, arabalarınÖzellikleri.AracınModeli, arabalarınÖzellikleri.AracınÜretimYılı, arabalarınÖzellikleri.AracınPlakası, arabalarınÖzellikleri.AracınMotorgücü);
            streamWriter.Close();


        }
Pekçok şey denedim ancak hala forms uygulamamda sadece ilk textbox yani AracınMarkası, txt dosyasına kaydediliyor. Onun harici veriler kaydedilmiyor.

Kaydetme işlemi ben StreamWriter'a aracın markasını yazmasam dahi sadece o kaydediliyor ve onun haricindekiler kaydedilmiyor.

sonuç olarak metin belgesine marka bölgesine yazdığım metin giriliyor.

StreamWriter.WriteLine Yöntem (System.IO) | Microsoft Docs

Arka arkaya stringleri bu şekilde yazdıramazsın.

Fonksiyon öyle çalışmıyor.

Eğer nesne yazdıracaksan birinci parametresi format, ikinci parametresi ise yazdırılacak nesne oluyor.

C# StreamWriter WriteLine(string format, params object?[] arg) (demo2s.com)

İlkini string verdiğin için tek ilkini yazar.

Kafam karışmasın diyorsan.

Her bir parametren için teker teker yazdır. Tek writeline yerine her birini ayrı yazdır.

2 Beğeni

Peki bu sorun Windows Forms ile mi alakali yoksa fonksiyonu iki defa art arda cagirinca da oluyor mu?

1 Beğeni
 StreamWriter streamWriter = new StreamWriter(dosya_adresi, true);
 streamWriter.WriteLine(string.Format("{0},{1},{2},{3},{4}",
                arabalarınÖzellikleri.AracınMarkası, 
                arabalarınÖzellikleri.AracınModeli, 
                arabalarınÖzellikleri.AracınÜretimYılı, 
                arabalarınÖzellikleri.AracınPlakası, 
                arabalarınÖzellikleri.AracınMotorgücü));
streamWriter.Close();

StreamWriter satırını yoruma alıp şu şekilde de deneyebilirsiniz:

File.AppendAllText(dosya_adresi, string.Format("{0},{1},{2},{3},{4}\n",
                arabalarınÖzellikleri.AracınMarkası,
                arabalarınÖzellikleri.AracınModeli,
                arabalarınÖzellikleri.AracınÜretimYılı,
                arabalarınÖzellikleri.AracınPlakası,
                arabalarınÖzellikleri.AracınMotorgücü
                ));

string.Format()’ ı özelleştirebilirsiniz. Ben virgül kullanmayı tercih ettim.

1 Beğeni

buna da bakarsan sevinirim