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: 14811
  • 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: 14811
  • 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: 14811
  • 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 761 korisnika na forumu :: 34 registrovanih, 3 sakrivenih i 724 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., antonije64, Apok, aramis s, Areal84, ArmyBoss, ccoogg123, CikaKURE, dankisha, debeli, deimos25, deLacy, Dorcolac, FileFinder, Georgius, Kubovac, Mercury, Metanoja, Milos ZA, milutin134, Mixelotti, Nemanja.M, nenad81, nuke92, panzerwaffe, pein, procesor, RJ, robert1979, sasa87, vathra, VJ, zbazin, |_MeD_|