c# başlangıç sorunları?

Kodla Büyü

mustafayilmaz28

Süper Üye
Süper Üye
Seçkin Üye
Mesajlar
1,425
merhabalar.
arkadaşlar
form1de bir tane buton 1 tane textbox var
form2 de ise bir tane textbox mevcut..
form1deki textboxa girilen bilgiyi botuna tıklayınca form yi açacak ve form2 deki textboxun içine yazacak..

hepsi bu kadar :D ama ben yapamadım.

(nette bu konu sorulmuş fakat ben oradakileri uyguladığımda bir sonuca varamadım
dahası form2.textbox1.text=form1.textbox1.text yazarak visual basicte sorunu aşardık :) ama şimdi aşamıyorum)
 
hocam istesen static bir değişken tanımla ona aktar veya form2 'nin kurucu metotuna parametre olarak gönder
 
hocam form2 nin kod bölümünde şöyle bir kod olacak

public Form2()
{
InitializeComponent();
}

private void Form2_Load(object sender, EventArgs e)
{

}

onu şöyle düzenleyin

string Str;
public Form2(string str)
{
Str = str;
InitializeComponent();
}

private void Form2_Load(object sender, EventArgs e)
{
textBox1.Text = Str;
}

Form1'de şöyle

private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2(textBox1.Text);
frm.Show();
}

veya

form2 koda böyle bir function ekleyin

public void Deger_aktar(string Str)
{
textBox1.Text = Str;
}

form1'e

private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.Deger_aktar(textBox1.Text);
frm.Show();
}
 
hocam veritabanındaki en son aktif olan (okuma kfassının üzerinde olduğu)kaydın ıd numarasını nasıl alabilirim?
 
string constr;
MySqlConnection conn;
MySqlDataAdapter dap;
DataSet ds;
void yenile()
{
constr = "Provider=MySqlProv.5.0; Location=localhost; data source=vt_personel; User id=root; password=''";
conn = new MySqlConnection("server=localhost; database=vt_personel; user id=root; password=''");
conn.Open();
}
private void frmkayitduzenleme_Load(object sender, EventArgs e)
{
txtAdi.Text=gelendegeraktar;
txtSoyadi.Text = gelendeger1aktar;
txtYasi.Text = gelendeger2aktar;
}

private void btnDuzelt_Click(object sender, EventArgs e)
{
yenile();
string sql2 = "UPDATE tbl_personel SET adi='" + txtAdi.Text + "',soyadi='" + txtSoyadi.Text + "',yasi='"+txtYasi.Text+"' " + "WHERE id=gelendeger3aktar ";
MySqlCommand command2 = new MySqlCommand();
command2.CommandText = sql2;
command2.Connection = connection;
connection.Open();
command2.ExecuteNonQuery();
MessageBox.Show("Kaydınız Başarı İle Güncellendi...");
connection.Close();
}

yukarıdaki kod bloğunda kalınolarak belirttiğim yerde hata veriyor..bu hata nedir? acaba?verileri güncelleme yapmak istiyorum da :)
 
constr = "Server=localhost;Database=vt_personel;Uid=root;Pwd=;"

Hocam Yukarıdaki gibi deneyin olmasa root'a password ver. (vermek istemessen)
başka bir kullanıcı açıp hakları tanıyıp öyle dene
 
mustafayilmaz28' Alıntı:
merhabalar.
arkadaşlar
form1de bir tane buton 1 tane textbox var
form2 de ise bir tane textbox mevcut..
form1deki textboxa girilen bilgiyi botuna tıklayınca form yi açacak ve form2 deki textboxun içine yazacak..

hepsi bu kadar :D ama ben yapamadım.

(nette bu konu sorulmuş fakat ben oradakileri uyguladığımda bir sonuca varamadım
dahası form2.textbox1.text=form1.textbox1.text yazarak visual basicte sorunu aşardık :) ama şimdi aşamıyorum)
hocam formlar arası kontrollere erişeceksen
erişeceğin kontrolün modifiers özeliğini public yapman yeterli
ara değşken vs kullanmana gerek yok,
son probleminede yarın sakin kafayla inceleyip cevaplamaya çalışırım,
iyi çalışmalar
 
refleto' Alıntı:
constr = "Server=localhost;Database=vt_personel;Uid=root;Pwd=;"
Hocam Yukarıdaki gibi deneyin olmasa root'a password ver. (vermek istemessen)
başka bir kullanıcı açıp hakları tanıyıp öyle dene
hocam orada problem yok sanırım :( çünkü kayıt yapıyor veritabanına güncellemde problem var :?:
celikumit hocam evet dün akşam izlediğim bir videoda gördüm sadece public yapmak yeterli imiş :D onun dışında bildiğimiz form1.textbox1.text=form2.textbox2.text şeklinde :idea:
 
merhabalar, naçizane önerilerim olacak;
1)command2.Connection = connection;
connection.Open(); buradaki connection tanımlı diyelim (class içerisinde ya da global olarak) öyleyse command2.open(); dener misiniz? not:MySqlConnection connection; böyle bir ifade var da ben görmedim mi?


2)yeni şeyler öğrenmek çok güzel ve böyle insanlardan birini görmek de öyle. tavsiyem tüm bu DML (update,select,insert,delete) işlemlerini bir class içerisinde yaptırmayı alışkanlık haline getirirseniz tüm prolerinizde büyük bir kolaylık sağlayacaktır, istediğiniz yeri değiştirim her proje adapte edebilirsiniz tekrar yazmaktansa..
3) umarım faydalı olmuştur.
 
hocam önerilerinize teşekkür ederim.
class oluşturma konusunda haklısınız..ama önce şu yapmak istediklerimi bir öğreneyim ondan sonra dedikleriniz gbi yapacağım İnşallah.
kodlara gelince:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace kayitgiris
{
public partial class frmkayitduzenleme : Form
{
string gelendeger;
string gelendegeraktar;
string gelendeger1;
string gelendeger1aktar;
string gelendeger2;
string gelendeger2aktar;
string gelendeger3;
string gelendeger3aktar;

MySqlConnection connection;
public frmkayitduzenleme(string gelendeger,string gelendeger1 ,string gelendeger2,string gelendeger3)
{
gelendegeraktar = gelendeger;
gelendeger1aktar = gelendeger1;
gelendeger2aktar = gelendeger2;
gelendeger3aktar = gelendeger3;
InitializeComponent();
}
string constr;
MySqlConnection conn;
MySqlDataAdapter dap;
DataSet ds;
void yenile()
{
constr = "Provider=MySqlProv.5.0; Location=localhost; data source=vt_personel; User id=root; password=''";
conn = new MySqlConnection("server=localhost; database=vt_personel; user id=root; password=''");
conn.Open();
}
private void frmkayitduzenleme_Load(object sender, EventArgs e)
{
txtAdi.Text=gelendegeraktar;
txtSoyadi.Text = gelendeger1aktar;
txtYasi.Text = gelendeger2aktar;
}

private void btnDuzelt_Click(object sender, EventArgs e)
{
yenile();
string sql2 = "UPDATE tbl_personel SET adi='" + txtAdi.Text + "',soyadi='" + txtSoyadi.Text + "',yasi='"+txtYasi.Text+"' WHERE id=gelendeger3aktar ";
MySqlCommand command2 = new MySqlCommand();
command2.CommandText = sql2;
command2.Connection = connection;
connection.Open();
command2.ExecuteNonQuery();
MessageBox.Show("Kaydınız Başarı İle Güncellendi...");
connection.Close();
}


}
}
command2.open();
da denedim ama olmuyor... :?
 
mustafayilmaz28' Alıntı:
string constr;
MySqlConnection conn;
MySqlDataAdapter dap;
DataSet ds;
void yenile()
{
constr = "Provider=MySqlProv.5.0; Location=localhost; data source=vt_personel; User id=root; password=''";
conn = new MySqlConnection("server=localhost; database=vt_personel; user id=root; password=''");
conn.Open();
}
private void frmkayitduzenleme_Load(object sender, EventArgs e)
{
txtAdi.Text=gelendegeraktar;
txtSoyadi.Text = gelendeger1aktar;
txtYasi.Text = gelendeger2aktar;
}

private void btnDuzelt_Click(object sender, EventArgs e)
{
yenile();
string sql2 = "UPDATE tbl_personel SET adi='" + txtAdi.Text + "',soyadi='" + txtSoyadi.Text + "',yasi='"+txtYasi.Text+"' " + "WHERE id=gelendeger3aktar ";
MySqlCommand command2 = new MySqlCommand();
command2.CommandText = sql2;
command2.Connection = connection;
connection.Open();
command2.ExecuteNonQuery();
MessageBox.Show("Kaydınız Başarı İle Güncellendi...");
connection.Close();
}

Hakkaten hocam şimdi dikkat ettim
connection
nerede tanımlı bir yazarmısınız.
 
bu azimle bu saatte çalışıyorsanız en kısa zamandan ustası olursunuz.
siz zaten bağlantıyı açmışsınız yenile içinde. command2.open(); buna gerek yok sanki..
sadece bu yeterli olması lazım.command2.ExecuteNonQuery();
not:halaa kendi bilgisayarımda değilim :) yarın da köye gidecem malum norm fazlasıyız maaş karşılığı dolduracağız

oldumu olmadı yazarsanız ona göre sorunu çözelim hemen. sonra da yatayım ben :)
 
namespace kayitgiris
{
public partial class frmkayitduzenleme : Form
{
string gelendeger;
string gelendegeraktar;
string gelendeger1;
string gelendeger1aktar;
string gelendeger2;
string gelendeger2aktar;
string gelendeger3;
string gelendeger3aktar;

MySqlConnection connection; public frmkayitduzenleme(string gelendeger,string gelendeger1 ,string gelendeger2,string gelendeger3)
{
gelendegeraktar = gelendeger;
gelendeger1aktar = gelendeger1;
gelendeger2aktar = gelendeger2;
gelendeger3aktar = gelendeger3;
InitializeComponent();
}
hocam kast ettiğiniz yer kalın ile çizdiğim yer değil ise tanımlı değil :(
nasıl ve nerde tanımlamam gerekir onuda söylerseniz :oops: :roll:
 
murat hocam ve diğer hocalarım bu arada Allah yardımcınız olsun..
üzüntüyle takip ediyorum siteden bu son durumlarınızı. :verymad: :x
 
yok hocam refleto hocam tanımlama eksikliğinden bahsetmiş baktım ama yapamadım :(
zaten bu kodlarıda ezbere yazdım gibi anlamaya çalışıyorum sadce :oops:
 
hocam tamam connection tanımlamışsınız doğru da içini doldurmamışsınız ki.
daha sonra da conn oluşturmuşsunuz ve onunla işlem yaptırmışsınız. bu yüzden hata veriyor büyük ihtimalle.
ihtimal diyorum bir dahaki sefere hata kodunu da yazarsanız daha yardımcı olur.

şimdi:
command2.Connection=conn;
command2..ExecuteNonQuery();

bu şekilde hemen yapıp dönersniz bekliyorum
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace kayitgiris
{
public partial class frmkayitduzenleme : Form
{
string gelendeger;
string gelendegeraktar;
string gelendeger1;
string gelendeger1aktar;
string gelendeger2;
string gelendeger2aktar;
string gelendeger3;
string gelendeger3aktar;

MySqlConnection connection;
public frmkayitduzenleme(string gelendeger,string gelendeger1 ,string gelendeger2,string gelendeger3)
{
gelendegeraktar = gelendeger;
gelendeger1aktar = gelendeger1;
gelendeger2aktar = gelendeger2;
gelendeger3aktar = gelendeger3;
InitializeComponent();
}
string constr;
MySqlConnection conn;
MySqlDataAdapter dap;
DataSet ds;
void yenile()
{
constr = "Provider=MySqlProv.5.0; Location=localhost; data source=vt_personel; User id=root; password=''";
conn = new MySqlConnection("server=localhost; database=vt_personel; user id=root; password=''");
conn.Open();
}
private void frmkayitduzenleme_Load(object sender, EventArgs e)
{
txtAdi.Text=gelendegeraktar;
txtSoyadi.Text = gelendeger1aktar;
txtYasi.Text = gelendeger2aktar;
}

private void btnDuzelt_Click(object sender, EventArgs e)
{
yenile();
string sql2 = "UPDATE tbl_personel SET adi='" + txtAdi.Text + "',soyadi='" + txtSoyadi.Text + "',yasi='"+txtYasi.Text+"' WHERE id='"+gelendeger3aktar+"' ";
MySqlCommand command2 = new MySqlCommand();
MySqlConnection connection = new MySqlConnection();
command2.CommandText = sql2;
command2.Connection = connection;
command2.Connection=conn;
command2.ExecuteNonQuery();
MessageBox.Show("Kaydınız Başarı İle Güncellendi...");
connection.Close();
}


}
}
son hali..
birde kalın ile çizdiğim yerde hata vardı onuda düzelttim ben :D
bu kadar da işe yarayalım bari :oops:
 
olmasaydı uyumaz olana kadar uğraşırdık yapım bu :)
sevindim yardımcı olmasına..
başka programcılar tarafından yazılı kodları incelerken tek bir kişinin kodlarına değilde birden fazla yazış şekillerine bakarsanız kendize bir sentez de oluşturabilirsiniz.
iyi çalışmalar.
 
string constr;
MySqlConnection conn;
MySqlDataAdapter dap;
DataSet ds;
void yenile()
{
constr = "Provider=MySqlProv.5.0; Location=localhost; data source=vt_personel; User id=root; password=''";
conn = new MySqlConnection("server=localhost; database=vt_personel; user id=root; password=''");
conn.Open();
}
private void frmkayitduzenleme_Load(object sender, EventArgs e)
{
txtAdi.Text=gelendegeraktar;
txtSoyadi.Text = gelendeger1aktar;
txtYasi.Text = gelendeger2aktar;
}

private void btnDuzelt_Click(object sender, EventArgs e)
{
yenile();
baglanti = new MySqlConnection("server=localhost; database=vt_personel; user id=root; password=''");
string sql2 = "UPDATE tbl_personel SET adi='" + txtAdi.Text + "',soyadi='" + txtSoyadi.Text + "',yasi='"+txtYasi.Text+"' " + "WHERE id=gelendeger3aktar ";
MySqlCommand command2 = new MySqlCommand();
command2.CommandText = sql2;
command2.Connection = baglanti;
baglanti .Open();
command2.ExecuteNonQuery();
MessageBox.Show("Kaydınız Başarı İle Güncellendi...");
baglanti .Close();
}

hocam böyle çok ezbere oluyor ama yukardaki gibi yapın çözülmezse proje dosyasına bakayım çünkü bazı kodlar havada
örneğin gönderdiğinize göre
constr = "Provider=MySqlProv.5.0; Location=localhost; data source=vt_personel; User id=root; password=''";
gereksiz gözüküyor benimde gönderdiğinim ilk mesajda kafamı karıştırdı.

ayrıca

string sql2 = "UPDATE tbl_personel SET adi='" + txtAdi.Text + "',soyadi='" + txtSoyadi.Text + "',yasi='"+txtYasi.Text+"' " + "WHERE id=gelendeger3aktar ";

bir tanımlama çalışır ama yanlış. bunu yerine parametre kullanın


string sql2 = "UPDATE tbl_personel SET adi='" + txtAdi.Text + "',soyadi='" + txtSoyadi.Text + "',yasi='"+txtYasi.Text+"' " + "WHERE id=gelendeger3aktar ";
MySqlCommand command2 = new MySqlCommand();
command2.CommandText = sql2;
command2.Connection = baglanti;

yukarıdakinin yerine

MySqlCommand command2 = new MySqlCommand("UPDATE tbl_personel SET adi=?adi, soyadi=?soyadi, yasi=?yasi WHERE id=?id", baglanti);
command2.parameters.add("?adi",textbox1.text);
command2.parameters.add("?soyadi",textbox2.text);
command2.parameters.add("?yasi",textbox3.text);
command2.parameters.add("?id",textbox4.text);

gibi olmalı öğrenmeye çalışıyorsun diye örnek veriyorum yanlı anlama.... Kolay gelsin
 
ve bunun yerine connection.Close(); conn.Close(); yapın.
MySqlConnection connection = new MySqlConnection(); buna da gerek yok artık..conn ve yenile varken connection lara gerek yok artık
 
HOCAM
private void btnDuzelt_Click(object sender, EventArgs e)
{
yenile();
string sql2 = "UPDATE tbl_personel SET adi='" + txtAdi.Text + "',soyadi='" + txtSoyadi.Text + "',yasi='"+txtYasi.Text+"' WHERE id='"+gelendeger3aktar+"' ";
MySqlCommand command2 = new MySqlCommand();
//MySqlConnection connection = new MySqlConnection();
command2.CommandText = sql2;
//command2.Connection = connection;
command2.Connection=conn;
command2.ExecuteNonQuery();
MessageBox.Show("Kaydınız Başarı İle Güncellendi...");
connection.Close(); conn.Close();
}
BU ŞEKİLDE yaptığımda;
veriyi güncelliyor fakat kalın yerde hata veriyor.
ama
leri kaldırdığımda sorun yok .bilginize.
 
teşekkür ederim arkadaşlar ilgilerinize:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace kayitgiris
{
public partial class frmkayitduzenleme : Form
{
string gelendeger;
string gelendegeraktar;
string gelendeger1;
string gelendeger1aktar;
string gelendeger2;
string gelendeger2aktar;
string gelendeger3;
string gelendeger3aktar;

MySqlConnection connection;
public frmkayitduzenleme(string gelendeger,string gelendeger1 ,string gelendeger2,string gelendeger3)
{
gelendegeraktar = gelendeger;
gelendeger1aktar = gelendeger1;
gelendeger2aktar = gelendeger2;
gelendeger3aktar = gelendeger3;
InitializeComponent();
}
string constr;
MySqlConnection conn;
void yenile()
{
constr = "Provider=MySqlProv.5.0; Location=localhost; data source=vt_personel; User id=root; password=''";
conn = new MySqlConnection("server=localhost; database=vt_personel; user id=root; password=''");
conn.Open();
}
private void frmkayitduzenleme_Load(object sender, EventArgs e)
{
txtAdi.Text=gelendegeraktar;
txtSoyadi.Text = gelendeger1aktar;
txtYasi.Text = gelendeger2aktar;
}

private void btnDuzelt_Click(object sender, EventArgs e)
{
string sql2;
yenile();
sql2 = "UPDATE tbl_personel SET adi='" + txtAdi.Text + "',soyadi='" + txtSoyadi.Text + "',yasi='"+txtYasi.Text+"' WHERE id='"+gelendeger3aktar+"' ";
MySqlCommand baglan = new MySqlCommand();
baglan.CommandText = sql2;
baglan.Connection=conn;
baglan.ExecuteNonQuery();
MessageBox.Show("Kaydınız Başarı İle Güncellendi...");
conn.Close();
}


}
}
yukarıdaki kodlar ile sorunsuz olarak kayıt güncelleme işlemini gerçekleştirdim..
şimdi sıra ilk kayıt son kayıt vs..vs.. ve silme işlemleri var.. :)
 
BBNET
Geri
Üst