Forum
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.
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
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
}
}
ö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ı.
Sanırım eksik olmuş. "baglanti.Open();" dan sonra "command.ExecuteNonQuery();" ekleyin.
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();
}
ç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.
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= "";
}
}
Zaten istediğiniz bu değil mi? Yani textbox'a girilen değeri tek bir satır halinde kaydetmek istemiyor musunuz?
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.
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 = "";
}
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
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?
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;
}
}
}
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.
textbox.Text += sqlveri;
satırınızı
textbox.Text += sqlveri + "\n";
şeklinde değiştirirseniz muhtemelen alt alta yazacaktır..
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.