Вот мои MSacces:Войти система MSAccess ошибка komut.ExecuteReader() необработанное
Моя ошибка: я могу зарегистрироваться и войти в систему, но когда я начинаю программу еще раз, я не могу войти в систему с той же переменной.
Например: Я зарегистрировался с admin 123
, а затем я вхожу в систему с admin 123
. Затем я закрываю программу и открываю ее снова, я не могу войти в систему с admin 123
.
Форма 1 начинается отсюда:
OleDbConnection bağlanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=üye.accdb");
private void button2_Click(object sender, EventArgs e)
{
bağlanti.Open();//connection open
OleDbCommand komut = new OleDbCommand("select * From üyeler", bağlanti);
OleDbDataReader okuyucu = komut.ExecuteReader();//reader
while (okuyucu.Read())reader.read
{
if (textBox1.Text.ToString() == okuyucu["kullaniciadi"].ToString())//read[accountname]
{
if (textBox2.Text.ToString() == okuyucu["kullanicisifre"].ToString())//read[password]
{
MessageBox.Show("tebrikler giriş başarılı");//cong sign in sucseed
Form2 frm = new Form2();//going new form
frm.Show();
this.Hide();
}
}
else
{
MessageBox.Show("Bu kullanıcı adı şifresi yanlıştır");
}
}
bağlanti.Close();
}
private void uyeol_Click(object sender, EventArgs e)
{
Form3 frm = new Form3();//sign up button
frm.Show();
this.Hide();
}
}
}
и его форма 3
OleDbDataAdapter da;
OleDbCommand cmd;
DataSet ds;
OleDbConnection bağlanti = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source =üye.accdb");
void griddoldur()
{
bağlanti = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=okul.accdb");//con
da = new OleDbDataAdapter("select *from ogrenci", bağlanti);
ds = new DataSet();
}
private void Form1_Load(object sender, EventArgs e)
{
griddoldur();
}
public void button1_Click(object sender, EventArgs e)
{
cmd = new OleDbCommand();
bağlanti.Open();//connection open
cmd.Connection = bağlanti;//cmd = new OleDbCommand();
cmd.CommandText="insert into üyeler (kullaniciadi,kullanicisifre,tel,ad) values ('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"')";//(account name + textbox1)(passw+ textbox2)(phonenumber+textbox3)(Name + textbox 4)
cmd.ExecuteNonQuery();,//cmd = new OleDbCommand();
bağlanti.Close();//connection close
Form1 frm = new Form1();//going log in form
frm.Show();
this.Hide();
}
}
Извините, но ваш язык тарабарщился ко мне :(Не стесняйтесь взглянуть на [этот мета-пост] (http://meta.stackoverflow.com/questions/266563/do-non-english-words-увеличение-вероятность-прием-downvotes /) – nvoigt
Когда у вас есть две записи в вашей таблице, остальные части kick говорят вам, что вы не можете войти (?), но на самом деле вы еще не закончили проверять вторую запись. Знаете ли вы, как использовать предложение WHERE в инструкции SQL? – Steve
Единственное, что ясно из этого сообщения, это то, что оно открыто для SQL-инъекции. НИКОГДА НЕ СОХРАНИТЕ строки для SQL-запросы. Уточните, что означают слова, написанные на вашем языке, чтобы мы могли получить представление о том, что происходит (добавьте комментарии к коду) – Takarii