Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 2.156 pregleda

Najnovija ↓

Oledb update greska 17.01.2010. u 14:51 · pre 204 meseca
izmenjeno 1 put, poslednji put Shadowed 17.01.2010. u 17:36
  1. Shadowed17.01.2010. u 17:36zapis iz teksta poruke
#1
Code (csharp):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication4
{
    public partial class Form1 : Form
    {
        private int rad;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Start();
        }

        private void Start()
        {
            OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\\ProZRS\\PracenjeDoc\\pdoc_t.mdb");
            OleDbCommand cmd = new OleDbCommand("Select * From tblPrioritet", cn);
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds, "tblPrioritet");
            grid1.DataSource = ds.Tables[0].DefaultView;
            rad = 1;

        }

        private void Novi()
        {
            OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\\ProZRS\\PracenjeDoc\\pdoc_t.mdb");
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = cn;
            cmd.CommandText = "Insert into tblPrioritet Values (@PrioritetID, @Prioritet, @Od, @Do)";
            cmd.Parameters.Add("@PrioritetID", OleDbType.Integer);
            cmd.Parameters.Add("@Prioritet", OleDbType.VarChar,10);
            cmd.Parameters.Add("@Od", OleDbType.Integer);
            cmd.Parameters.Add("@Do", OleDbType.Integer);
            cmd.Parameters["@PrioritetID"].Value = mm();
            cmd.Parameters["@Prioritet"].Value = txt2.Text.ToUpper();
            cmd.Parameters["@Od"].Value = int.Parse(txt3.Text);
            cmd.Parameters["@Do"].Value = int.Parse(txt4.Text);
            cn.Open();
            cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            cn.Close();            
        }

        private void Apdejt()
        {
            OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\\ProZRS\\PracenjeDoc\\pdoc_t.mdb");
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = cn;
            cmd.CommandText = "Update tblPrioritet set Prioritet=@Prioritet, Od=@Od, Do=@Do Where PrioritetID=@PrioritetID";
            cmd.Parameters.Add("@PrioritetID", OleDbType.Integer);
            cmd.Parameters.Add("@Prioritet", OleDbType.VarChar,10);
            cmd.Parameters.Add("@Od", OleDbType.Integer);
            cmd.Parameters.Add("@Do", OleDbType.Integer);
            cmd.Parameters["@PrioritetID"].Value = txt1.Text;
            cmd.Parameters["@Prioritet"].Value = txt2.Text.ToUpper();
            cmd.Parameters["@Od"].Value = int.Parse(txt3.Text);
            cmd.Parameters["@Do"].Value = int.Parse(txt4.Text);
            cn.Open();
            cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            cn.Close();
        }

        private void Brisi()
        {
            OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\\ProZRS\\PracenjeDoc\\pdoc_t.mdb");
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = cn;
            cmd.CommandText = "Delete From tblPrioritet Where PrioritetID=@PrioritetID";
            cmd.Parameters.Add("@PrioritetID", OleDbType.Integer);
           
            cmd.Parameters["@PrioritetID"].Value = txt1.Text;
           
            cn.Open();
            cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            cn.Close();
        }

        private int mm()
        {
            OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\\ProZRS\\PracenjeDoc\\pdoc_t.mdb");
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = cn;
            cmd.CommandText = "Select Max(PrioritetID) from tblPrioritet";
            cn.Open();
            int i = (int)cmd.ExecuteScalar() + 1;
            cn.Close();
            return i;
        }

        private void grid1_SelectionChanged(object sender, EventArgs e)
        {
            Red();
        }

        private void Red()
        {
            int i = grid1.CurrentRow.Index;

            txt1.Text = grid1[0, i].Value.ToString();
            txt2.Text = grid1[1, i].Value.ToString();
            txt3.Text = grid1[2, i].Value.ToString();
            txt4.Text = grid1[3, i].Value.ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            foreach (Control c in this.Controls)
            {
                if (c.GetType().ToString() == "MKON.TXT")
                {
                    c.Text = string.Empty;
                }
            }

            rad = 2;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (rad == 1)
            {
                Apdejt();
            }
            else if (rad == 2)
            {
                Novi();
            }
            Start();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Brisi(); Start();
        }

    }
}



file:///C:/Documents%20and%20Settings/BJ/Desktop/greska_update.JPG


Stvarno ne znam zasto nece.
Potpis
alexa
Re: Oledb update greska 17.01.2010. u 14:54 · pre 204 meseca #2
Zaboravio sam napisati da Insert, Delete rade, a update ni da cuje.
Potpis
alexa
Re: Oledb update greska 17.01.2010. u 15:49 · pre 204 meseca #3
probaj ovo cmd.Parameters["@PrioritetID"].Value = int.Parse(txt1.Text);

pokusaj i uraditi update bez upotrebe parametara.

cmd.CommandText = "Update tblPrioritet set Prioritet='bla bla', Od=1, Do=2 Where PrioritetID=01";

Re: Oledb update greska 17.01.2010. u 16:24 · pre 204 meseca #4
Zamijenio update string sa ovim:

cmd.CommandText = "Update tblPrioritet set PrioritetID=@PrioritetID, Prioritet=@Prioritet, Od=@Od, Do=@Do Where PrioritetID=@PrioritetID";

i radi. Svasta, pa bas moram da podeim i polje koje ne apdejtujem u sql upitu. U ovom slucaju PrioritetID.


Jos jedno pitanje, kada ovako prosledjujem vrijednosti parametrima, onda ne moram da pazim kakvi su, int, datetime ...., posto sam odredio u parametru sta je u pitanju.

cmd.Parameters["@PrioritetID"].Value = txt1.Text;

ne moram da pisem int.parse(txt1.Text), ako sam dobro razumio ove parametre, tako isto sa datumom i drugim tipovima?
Potpis
alexa
Re: Oledb update greska 17.01.2010. u 19:24 · pre 204 meseca
izmenjeno 1 put, poslednji put malo_nj 17.01.2010. u 19:37
  1. malo_nj17.01.2010. u 19:37zapis iz teksta poruke
#5
ne moras da uneses svako polje kod SQL Update problem su parametri valjda kod oledb on ih ne poziva po imenu nego po redosledu po kome su dodati, npr sad kad bi zamijenio redosled parametara u Update-u opet bi dobio gresku (imao je neko skoro isti problem sorry sto se ne sjetih ranije).
Re: Oledb update greska 17.01.2010. u 21:58 · pre 204 meseca #6
Hvala malo_nj. U svako slucaju radi. Pozz
Potpis
alexa
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme