[ Cyberghost @ 09.12.2010. 09:50 ] @
Imam napravljenu aplikaciju u C# za Windows Mobile platformu.
U Javi kada sam radio izvlacenje podataka iz baze, prvo sam ih zapakovao u objekat pa
onda na nekoj formi sam podatke izvlacio iz objekta, ali to nisam napravio u C# na isti nacin,
treba mi pomoc kako to uraditi evo koda:
Mislim da mi trebaju oni setters i getters, ali kako ?

Code:


db = new DBConnect();  // instancira objekat za konekciju na bazu
db.conn.Open();  // otvara konekciju
param = new SqlCeParameter();
command = db.conn.CreateCommand();

public DataTable nadjiPoBarkodu(String barKod)
{
            param.ParameterName = "@barKod";
            param.Value = barKod;

            sql = "SELECT ro_sifra, ro_naziv, ro_jm, ro_cena FROM roba WHERE ro_barkod = @barKod";
            command.Parameters.Add(param);
            command.CommandText = sql;
            
            DataTable dt = new DataTable();
            SqlCeDataAdapter da = new SqlCeDataAdapter(command);
            da.Fill(dt);
            db.conn.Close();  

            return dt;
}

I na formi iz DataTable skupljam podatke i prikazujem korisniku.
Primer, link, bilo sta kako bi trebalo by the book uraditi ?
[ Dusan Kondic @ 10.12.2010. 08:13 ] @
Evo primera za normalnu desktop platformu. Mislim da će da radi i na Windows Mobile.
Code:

//u deklaraciji
public static System.Data.SqlClient.SqlConnection cn;

//u inicijalizaciji
cn = new System.Data.SqlClient.SqlConnection("Data Source=(local);Database=" + IzabranaBaza + ";Integrated Security = SSPI;");

//u izvrsnoj funkciji
            SqlDataAdapter da = new SqlDataAdapter("SELECT ro_sifra, ro_naziv, ro_jm, ro_cena FROM roba WHERE ro_barkod = " + barkod.ToString(), cn);
            //ako je barkod varchar onda je kraj komande WHERE ro_barkod = '" + barkod.ToString() + "'"
            try
            {
                da.Fill(dt);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            return dt;

//Ako koristite procs (stored procedures), što toplo preporučujem, onda:

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = cn;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "[" + NazivBaze + "].dbo.NazivProcedure";

            SqlParameter par = new SqlParameter();
            par = cmd.CreateParameter();
            par.ParameterName = "@barKod";
            par.DbType = DbType.String;//pogledati tip u SQL tabeli
            par.Size = 50;//pogledati velicinu u SQL tabeli
            par.Direction = ParameterDirection.Input;
            cmd.Parameters.Add(par);

            cmd.Parameters["@barKod"].Value = barkod;

            dt.Rows.Clear();
            try
            {
                cn.Open();
                dt.Load(cmd.ExecuteReader(CommandBehavior.Default));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                cn.Close();
            }
            return dt;