c# problem kod querija

c# problem kod querija

offline
  • Huskar
  • Pridružio: 31 Maj 2008
  • Poruke: 885

ovu gresku izbaci

ne razumem zasto kada ima 4 querija i 4 destination(2 combo-a i 2 date pickera)

[code]
izbaci mi ovu gresku


ali 4 unosa je (2 combo boxa i 2 data pickera) za 4 kolone u tabeli.

U cemu je problem?
Evo celog koda

[code]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Windows.Forms;

namespace zadatak2
{
public partial class Form1 : Form
{
private OleDbConnection connection=new OleDbConnection();
public Form1()
{
connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\VS2010 projects\zadatak2\zadatak2\fedek.accdb;Jet OLEDB:Database Password=fedek;";
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
try
{

connection.Open();
OleDbCommand command=new OleDbCommand();
command.Connection=connection;
string query="select * from konf";
command.CommandText=query;

OleDbDataReader reader=command.ExecuteReader();
while(reader.Read())
{
comboBox1.Items.Add(reader["korisnik"].ToString());
comboBox2.Items.Add(reader["dogadjaj"].ToString());
}

}
catch(Exception ex)
{
MessageBox.Show("error" + ex);
}

connection.Close();
}

private void btnSave_Click(object sender, EventArgs e)
{
string query = "insert into Tomislav (Korisnik, Dogadjaj, DatumOd, DatumDo) values('" + this.comboBox1.SelectedItem + "','" + this.comboBox2.SelectedItem + "''" + this.dtpOd.Text + "''" + this.dtpDo.Text + "') ;";




OleDbCommand command1 = new OleDbCommand();
command1.Connection = connection;
command1.CommandText = query;

OleDbDataReader reader;


try
{
connection.Open();

reader = command1.ExecuteReader();
MessageBox.Show("saved");
while (reader.Read())
{
}

}

catch (Exception ex1)
{
MessageBox.Show("error" + ex1);
}

connection.Close();
}






}
}
[/code]



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14824
  • Gde živiš: Niš

Koliko vidim, imaš grešku u upitu, baš kao što kaže poruka:
 string query = "insert into Tomislav (Korisnik, Dogadjaj, DatumOd, DatumDo) values('" + this.comboBox1.SelectedItem + "','" + this.comboBox2.SelectedItem + "''" + this.dtpOd.Text + "''" + this.dtpDo.Text + "') ;" Obrati pažnju na to da nemaš zapete između para atributa 2-3 i 3-4.



offline
  • Huskar
  • Pridružio: 31 Maj 2008
  • Poruke: 885

a to sam ispravio ali mi izbaci kao data missmatch of types, ali u bazi mi se cini sve ok

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14824
  • Gde živiš: Niš

Tu je verovatno do datuma problem. Moraš da proveriš kog je formata datum u propertiju Text za DTP, i da li se format poklapa sa onim koji zahteva Access. Ako ti nije bitno da datum bude zabeležen kao datum (ne koristiš samo delove datuma u upitima) najjednostavnije je da u bazi tipove atributa DatumOd i DatumDo postaviš na Text. Pa čak i u tom slučaju možeš da izvučeš delove datuma ukoliko zatreba.

offline
  • Huskar
  • Pridružio: 31 Maj 2008
  • Poruke: 885

string query = "insert into Tomislav (Korisnik, Dogadjaj, DatumOd, DatumDo) values('" + this.comboBox1.SelectedItem + "','" + this.comboBox2.SelectedItem + "','" + this.dtpOd.Value.Date + "','" + this.dtpDo.Value.Date + "') ;";

Ovako sam resio.

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Sklapanje queryja tako što samo u stringu spojiš sve promenljive nije dobra praksa. Zamisli da neki korisnik sebi da ime: Korisnik) values (''); drop table Tomislav;
Kad budeš pokrenuo query, upisaće se jedan prazan red, a zatim ode tabela.

Da bi izbegao ovo (sql injection) koristi parametre. Svaka sql baza podržava parametre u queryjima, i u velikom broju slučajeva će ponovno poretanje tog queryja sa drugačijim parametrima biti brže nego da sam sklopiš nov query.

offline
  • Huskar
  • Pridružio: 31 Maj 2008
  • Poruke: 885

ne poznajem mnogo parametre....

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14824
  • Gde živiš: Niš

Napisano: 04 Okt 2014 15:33

Pa upoznaj ih. Veoma je bitno to. Evo jednog kratkog primera iz kog možeš da vidiš kako to radi:



Dopuna: 04 Okt 2014 15:34

Istina, ovde se radi sa Oracle DBMS-om, ali to i nije toliko bitno.

Ko je trenutno na forumu
 

Ukupno su 1152 korisnika na forumu :: 33 registrovanih, 8 sakrivenih i 1111 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., ajo baba, Apok, aramis s, bladesu, bojcistv, Djokkinen, Dogma21, dzoni19, FileFinder, Georgius, gomago, Goran 0000, havoc995, kovinacc, Kubovac, kybonacci, Lucije Kvint, M1los, mean_machine, MiroslavD, nemkea71, nuke92, operniki, sevenino, Sir Budimir, solic, ss10, stegonosa, strelac07, trajkoni018, Tvrtko I, šumar bk2