Forum

VB C# multiline tex...
 
Bildirimler
Hepsini Temizle

VB C# multiline textbox' taki veriyi SQL veritabanına kaydetme

17 Yazılar
4 Üyeler
0 Reactions
6,924 Görüntüleme
(@sonerada)
Gönderiler: 10
Active Member
Konu başlatıcı
 

merhabalar.

multilene textbox aracıma altalta mahalle ismi sıraladım ve bu mahalle isimlerini sql deki tabloda mahalle adı altında sıralamak istiyorum.veri aktarma kodunu beceremedim.nasıl olur yarıdımınızı bekliyorum.

devlet kurumunda yaklaşık 10 bin kişiyi rahata kavuştumasını düşündüğüm bi küçük uygulama yapma peşindeyim. amatör bişey ama çok işe yarayacak bitirebilir isem (:

 

yardımlarınız için şimdiden teşekkürler.

 
Gönderildi : 13/08/2017 17:16

(@eravse)
Gönderiler: 1753
Üye
 

mahalle adı dedıgınız bır tablomu ? eğer oyle ıse https://forums.asp.net/t/1913294.aspx?multiline+text+insert+into+sql+db+ asp.net forumdaki soruya göz atmanızı öneririm.

 

saygılarımla

 

 

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 14/08/2017 18:40

(@volkanalkilic)
Gönderiler: 137
Estimable Member
 

Aşağıda küçük bir örnek paylaşıyorum;

using (SqlConnection openCon = new SqlConnection("bağlantı_dizesi")) // Veri tabanı ayarlarınızı buraya girin
{
string sqlKomut = "INSERT into [TABLO_ADI] ([SÜTUN_ADI]) VALUES (@VERİ)"; // Tablo adı ve sütun adlarını buraya girin.

using (SqlCommand command = new SqlCommand(sqlKomut))
{

var veri = MULTILINE_TEXTBOX.Replace("\n","<br/>"); // MULTILINE_TEXTBOX içerisindeki veriyi satırlara bölerek alın.

command.Connection = openCon;
command.Parameters.AddWithValue("@VERİ", veri); // Parametre olarak set edin

openCon.Open(); // Veri tabanına gönderin

}
}

 
Gönderildi : 14/08/2017 18:51

(@sonerada)
Gönderiler: 10
Active Member
Konu başlatıcı
 

öncelikle değerli cevaplarınız için teşekkürler.denedim ama yapamadım.hiçbişey değişmiyor gibi.

bir adet buton um var ve bunun click event ına eklediğim kodlarla formda bulunan multiline textbox içinde enter tuşuyla altalta sıralanmış mahalle isimlerini sql deki tablomda bulunan mahalle sütununa alt alta sıralamak istiyorum ama olmadı.hata vermiyor ama kod da çalışmadı.kodları kendime göre şöyle yazdım:

 

using (SqlConnection baglanti= new SqlConnection(@"Data Source=DESKTOP-A4HK9A7;Initial Catalog=stokgiris;Integrated Security=True"))
            {
                string sqlkomut = "insert into mahalleler (mahalle) values (@mahalleadi)";
                using (SqlCommand command = new SqlCommand(sqlkomut))
                {
                    var veri = textBox1.Text.Replace("\n", "<br/>");
                    command.Connection = baglanti;
                    command.Parameters.AddWithValue("@mahalleadi", veri);
                    baglanti.Open();

 

yanlışlık nedir anlamadım.@veri yazan kısmı doğru mu doldurdum emin değilim 200 ders videosu izledim haftalardır uğraşıyorum (: hem zevkli hem ızdıraplı.

 
Gönderildi : 15/08/2017 23:23

(@volkanalkilic)
Gönderiler: 137
Estimable Member
 

Sanırım eksik olmuş. "baglanti.Open();" dan sonra "command.ExecuteNonQuery();" ekleyin.

 
Gönderildi : 16/08/2017 00:04

(@volkanalkilic)
Gönderiler: 137
Estimable Member
 

Yazma ve okumayı tarif eden bir örnek hazırladım. Aşağıdaki kod yardımcı olacaktır;

 

void Main()
{
System.Windows.Forms.Form form = new System.Windows.Forms.Form();
TextBox textbox = new TextBox();
textbox.Multiline = true;
textbox.Dock = DockStyle.Fill;

Button button = new Button();
button.Text = "Gönder";
button.Dock = DockStyle.Bottom;
button.Click += (sender, args) =>
{
using (SqlConnection openCon = new SqlConnection("Data Source=localhost;Initial Catalog=Cargo;Integrated Security=True"))
{
string sqlKomut = "INSERT into [StokItem] ([Airwaybill]) VALUES (@VERİ)";

using (SqlCommand command = new SqlCommand(sqlKomut))
{

var veri = textbox.Text;

command.Connection = openCon;
command.Parameters.AddWithValue("@VERİ", veri);

openCon.Open();

command.ExecuteNonQuery();

textbox.Text = "";

}
}
};

Button button2 = new Button();
button2.Text = "Oku";
button2.Dock = DockStyle.Bottom;
button2.Click += (sender, args) =>
{
using (SqlConnection openCon = new SqlConnection("Data Source=localhost;Initial Catalog=Cargo;Integrated Security=True"))
{
openCon.Open();

string sqlKomut = "SELECT Airwaybill FROM StokItem";

using (SqlCommand command = new SqlCommand(sqlKomut, openCon))
{

using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
var sqlveri = reader.GetString(0);
textbox.Text = sqlveri;

}
}
}
}
};

form.Controls.Add(textbox);
form.Controls.Add(button);
form.Controls.Add(button2);
form.Show();
}

 
Gönderildi : 16/08/2017 00:31

(@sonerada)
Gönderiler: 10
Active Member
Konu başlatıcı
 

çok sağolun. ama şöyle bir problem var geceden bu yana uğraşıyorum. textbox içindeki veri tek satır olunca veritabanına yolluyor ama enterla alt satıra inip iki satır veri yazınca şöyle bi hata alıyorum;

 

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: Incorrect syntax near 'nvarchar'.

 

kodlarımı da şöyle düzenledim

 

using (SqlConnection con = new SqlConnection(@"Data Source=DESKTOP-A4HK9A7;Initial Catalog=stokgiris;Integrated Security=True"))
            {
                string sqlKomut = "INSERT into mahallelerr (mahalle) values ('" + textBox1.Text + "')";
                using (SqlCommand command = new SqlCommand(sqlKomut))
                {
                    var veri = textBox1.Text.Replace("\n", "<br>");
                    command.Connection = con;
                    command.Parameters.AddWithValue(@textBox1.Text, veri);
                    con.Open();
                    command.ExecuteNonQuery();
                    textBox1.Text= "";
                }
            }

 

 

yanlışlık nerde acaba.

 
Gönderildi : 16/08/2017 12:35

(@sonerada)
Gönderiler: 10
Active Member
Konu başlatıcı
 

kodları bu şekilde girdiğimde hata mesajı yok ama altalta girilen verileri sql tabloda tek satıra kaydediyor.

 

 

 

using (SqlConnection con = new SqlConnection(@"Data Source=DESKTOP-A4HK9A7;Initial Catalog=stokgiris;Integrated Security=True"))
            {
                string sqlKomut = "INSERT into [mahallelerr] ([mahalle]) values (@veri)";
                using (SqlCommand command = new SqlCommand(sqlKomut))
                {
                    var veri = textBox1.Text;
                    command.Connection = con;
                    command.Parameters.AddWithValue("@veri", veri);
                    con.Open();
                    command.ExecuteNonQuery();
                    textBox1.Text= "";
                }
            }

 
Gönderildi : 16/08/2017 12:43

(@volkanalkilic)
Gönderiler: 137
Estimable Member
 

Zaten istediğiniz bu değil mi? Yani textbox'a girilen değeri tek bir satır halinde kaydetmek istemiyor musunuz?

 
Gönderildi : 16/08/2017 12:48

(@sonerada)
Gönderiler: 10
Active Member
Konu başlatıcı
 

Zaten istediğiniz bu değil mi? Yani textbox'a girilen değeri tek bir satır halinde kaydetmek istemiyor musunuz?

volkan bey ben yanlış anlattım sanırım.şöyle ki ben girilen her satırdaki değeri veritabanındaki tabloda da tek tek ve alt alta değerler olarak girsin istiyorum.

 
Gönderildi : 16/08/2017 21:21

(@volkanalkilic)
Gönderiler: 137
Estimable Member
 

Bu durumda aşağıdaki şekilde deneyin;

 

using (SqlConnection openCon = new SqlConnection("Data Source=localhost;Initial Catalog=Cargo;Integrated Security=True"))
{
openCon.Open();
var satırlar = textbox.Text.Split(new[] { '\r', '\n' });
foreach (var veri in satırlar.Where(x=> !String.IsNullOrEmpty(x)))
{
string sqlKomut = "INSERT into [StokItem] ([Airwaybill]) VALUES (@VERİ)";

using (SqlCommand command = new SqlCommand(sqlKomut))
{

command.Connection = openCon;
command.Parameters.AddWithValue("@VERİ", veri);

 

command.ExecuteNonQuery();

}
}
textbox.Text = "";
}

 
Gönderildi : 16/08/2017 21:33

(@sonerada)
Gönderiler: 10
Active Member
Konu başlatıcı
 

Bu durumda aşağıdaki şekilde deneyin;

 

using (SqlConnection openCon = new SqlConnection("Data Source=localhost;Initial Catalog=Cargo;Integrated Security=True"))
{
openCon.Open();
var satırlar = textbox.Text.Split(new[] { '\r', '\n' });
foreach (var veri in satırlar.Where(x=> !String.IsNullOrEmpty(x)))
{
string sqlKomut = "INSERT into [StokItem] ([Airwaybill]) VALUES (@VERİ)";

using (SqlCommand command = new SqlCommand(sqlKomut))
{

command.Connection = openCon;
command.Parameters.AddWithValue("@VERİ", veri);

 

command.ExecuteNonQuery();

}
}
textbox.Text = "";
}

 

işte bu ya.harika.

çok sağolun çok yardımcı oldunuz volkan bey.oldu hem de mis gibi oldu

 
Gönderildi : 17/08/2017 01:22

(@sonerada)
Gönderiler: 10
Active Member
Konu başlatıcı
 

son birşey daha sormak istiyorum.

veritabanına sırasıyla mahalle adlarını ekledik.formu kapattım sonra formu yeniden açtığımda bu mahalle adlarını veritabanından aynı textbox içine aynı sırada yazmak istiyorum.forum load olayına kodları girdim fakat ilk mahalle adını ekleyip diğerlreini textbox a yazdıramadım.yardımcı olabilir misiniz?

 
Gönderildi : 17/08/2017 14:18

(@volkanalkilic)
Gönderiler: 137
Estimable Member
 

Aşağıdaki şekilde deneyin;

 

using (SqlCommand command = new SqlCommand(sqlKomut, openCon))
{

using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
var sqlveri = reader.GetString(0);
textbox.Text += sqlveri;

}
}
}

 
Gönderildi : 18/08/2017 13:19

(@sonerada)
Gönderiler: 10
Active Member
Konu başlatıcı
 

Aşağıdaki şekilde deneyin;

 

using (SqlCommand command = new SqlCommand(sqlKomut, openCon))
{

using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
var sqlveri = reader.GetString(0);
textbox.Text += sqlveri;

}
}
}

 

teşekkürler.oldu ama satırları alt alta değil de yanyana sıraladı düz metin gibi.

 
Gönderildi : 18/08/2017 18:23

(@suleymansulun)
Gönderiler: 53
Trusted Member
 

textbox.Text += sqlveri;

satırınızı 

textbox.Text += sqlveri + "\n";

şeklinde değiştirirseniz muhtemelen alt alta yazacaktır..

 
Gönderildi : 04/09/2017 06:00

(@sonerada)
Gönderiler: 10
Active Member
Konu başlatıcı
 

teşekkürler.

 

o işi

var satırlar = textBox1.Text.Split(new[] { '\r', '\n' });
                    foreach (var veri in satırlar.Where(x => !String.IsNullOrEmpty(x)))

 

koduyla çözdüm.

 
Gönderildi : 05/09/2017 18:18

Paylaş: