C# - Problemi i rješenja izdvojena tema

poruka: 2.151
|
čitano: 702.975
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Ne rješavamo zadaće, jbg.

My name is Legion... For we are many!
12 godina
neaktivan
offline
C# - Problemi i rješenja

Kako da dobijem kada u text box unosim neke znakove (lozinku) da mi umjesto znakova 1234 prikazuje ****?

Kada upisujemo lozinku kao kad se logiramo za bug forum?

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: C# - Problemi i rješenja

textBox1.PasswordChar = '*';

12 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Hvala, vidio sam da imam u toolbox-u passwordbox je li preko toga išta jednostavnije ili ?

 

Nema mi u VS passwordChar?

Poruka je uređivana zadnji put sub 8.11.2014 20:50 (Xyloto).
14 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Xyloto kaže...

Hvala, vidio sam da imam u toolbox-u passwordbox je li preko toga išta jednostavnije ili ?

To je to isto.

12 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Uspio sam ovako

 

string password = pass_txtbox.Password;

12 godina
neaktivan
offline
C# - Problemi i rješenja

Kako da iz baze izvučem jedan podatak. Npr trebam unijeti korisničko ime bankara i s time da izvadim iz baze lozinku koju koristi taj bankar?

Pokusao sam sa:

 

aBankar dbPassword = new aBankar(reader.GetString(4));

 

ali javlja mi error Bank.aBankar.Load(string)': not all code paths return a value

 

 

using System;

using System.Collections.Generic;

using System.Data.SqlClient;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Globalization;

 

 

namespace Bank

{

   class aBankar

   {

 

     //private int bankarID;

     //private string imeBankara;

     //private string prezimeBankara;

     //private string korImeBankara;

     private string lozinkaBankara;

 

     public aBankar(string lozinkaBankara)

     {

       //this.imeBankara = imeBankara;

       //this.prezimeBankara = prezimeBankara;

       //this.korImeBankara = korImeBankara;

       this.lozinkaBankara = lozinkaBankara;

     }

 

 

     public override string ToString()

     {

       return lozinkaBankara;

     }

 

    /* public string Ime

     {

       get

       {

         return imeBankara;

       }

     }

 

     public string Prezime

     {

       get

       {

         return prezimeBankara;

       }

     }

 

     public string Korisnicko

     {

       get

       {

         return korImeBankara;

       }

     }

 

     */

 

     public string Lozinka

     {

       get

       {

         return lozinkaBankara;

       }

     }

 

     static String connectionStr = @"Data Source = '.\SQLExpress';

                    Initial Catalog = Bank;

                    Integrated Security = True";

 

 

 

     public static aBankar Load(string userName)

     {

 

       string query = @"SELECT * FROM aBankar WHERE Ime =" + userName;

 

       SqlConnection connection = new SqlConnection(connectionStr);

 

       try

       {

         connection.Open();

         SqlCommand command = new SqlCommand();

         command.CommandText = query;

         SqlDataReader reader = command.ExecuteReader();

         reader.Read();

 

         aBankar dbPassword = new aBankar(reader.GetString(4));

 

         reader.Close();

 

         return dbPassword;

 

       }

 

       catch (SqlException x)

       {

         Console.WriteLine(x.Message);

       }

 

       finally

       {

         connection.Close();

         connection.Dispose();

       }

 

     }

   }

}

 
0 0 hvala 0
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

catch i finally blokovi ti moraju vraćati nešto jer metoda "Load(string username)" nije tipa void, dakle, vraća vrijednost. Stavi da catch vraća null a finally dbPassword.

 

Inače, iz baze nikad ne čitaš na taj način jer bi netko umjesto ispravnog passworda mogao napisati npr. ovonijepravipassword' OR '1' = '1'; /* i na taj način se uredno ulogirati, bez da zna password. Ispravan način su parametarski upiti jer nikad ne znaš što će korisnik upisati. I ne, nemoj "ja tek učim" jer se uči od početka kako treba. Kasnije je nekog jako teško uvjeriti da je slaganje sql upita lijepljenjem stringova jako loša ideja.

My name is Legion... For we are many!
12 godina
neaktivan
offline
C# - Problemi i rješenja

Ispravio sam to što si mi rekao, ali ne radi mi opet, cilj mi je da dohvatim jedan password iz baze i spremim ga u string varijablu te ga usporedim s onim iz text box-a?

Za ovaj kod mi ne javlja nikaku grešku ali ne dobivam ono što bih htio?

 

using System;

using System.Collections.Generic;

using System.Data.SqlClient;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Globalization;

 

 

namespace Bank

{

   class aBankar

   {

 

     //private int bankarID;

     //private string imeBankara;

     //private string prezimeBankara;

     //private string korImeBankara;

     private string lozinkaBankara;

 

     public aBankar(string lozinkaBankara)

     {

       //this.imeBankara = imeBankara;

       //this.prezimeBankara = prezimeBankara;

       //this.korImeBankara = korImeBankara;

       this.lozinkaBankara = lozinkaBankara;

     }

 

     public override string ToString()

     {

       return lozinkaBankara;

     }

 

    /* public string Ime

     {

       get

       {

         return imeBankara;

       }

     }

 

     public string Prezime

     {

       get

       {

         return prezimeBankara;

       }

     }

 

     public string Korisnicko

     {

       get

       {

         return korImeBankara;

       }

     }

 

     */

 

     public string Lozinka

     {

       get

       {

         return lozinkaBankara;

       }

     }

 

     static String connectionStr = @"Data Source = '.\SQLEXPRESS';

                    Initial Catalog = Bank;

                    Integrated Security = True";    

 

     public static aBankar Load_pass(string userName)

     {

 

       string query = @"SELECT Lozinka FROM aBankar WHERE KorisnickoIme =" + userName;

 

       SqlConnection connection = new SqlConnection(connectionStr);

 

       try

       {

         connection.Open();

         SqlCommand command = new SqlCommand();

         command.Connection = connection;

         command.CommandText = query;

         SqlDataReader reader = command.ExecuteReader();

         reader.Read();

 

         aBankar dbPassword = new aBankar (reader.GetString(4));

 

         reader.Close();

 

         return dbPassword;

 

       }

 

       catch (SqlException x)

       {

         Console.WriteLine(x.Message);

       }

       catch(Exception x)

       {

         Console.WriteLine(x.Message);

       }

 

       finally

       {

         connection.Close();

         connection.Dispose();

       }

 

       return null;

 

     }

   }

}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Bank
{
   /// <summary>
   /// Interaction logic for MainWindow.xaml
   /// </summary>
   public partial class MainWindow : Window
   {
     public MainWindow()
     {
       InitializeComponent();
     }
     private void Button_Prijava(object sender, RoutedEventArgs e)
     {
       
       string userName = user_name_txtBox.Text;
       string password = pass_txtBox.Password;
       aBankar dBpass = aBankar.Load_pass(userName);
       string user_pass = userName + " " + password;
       string user_passDB = userName + " " + dBpass;
       MessageBox.Show("Ovo je lozinka: " + dBpass);
      
       if (user_pass == user_passDB)
       {
         MessageBox.Show("Prijava uspješna!");
       }
       else
       {
         MessageBox.Show("Prijava nije uspješna!");
       }   
     }
   }
}
 
0 0 hvala 0
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Zašto .GetString(4) kad u readeru imaš samo pass (SELECT Lozinka FROM aBankar)? .GetString(4) čita iz četvrtog stupca koji ti nemaš....

 

edit - i opet si shebo. Vraćaš null bez obzira je li išta povučeno iz baze. return null; ide u catch blokove, ne nakon try....catch bloka.

My name is Legion... For we are many!
Poruka je uređivana zadnji put ned 9.11.2014 10:35 (Sum_of_all_fears).
16 godina
offline
Re: C# - Problemi i rješenja

Nevezano za pogrešku...

Password se nikada ne sprema u string, nego u char[].

 

Stringu jednom kada dodijeliš vrijednost, on ju ima zauvijek (odnosno, sve dokle ga garbage collector je pokupi). Charu (i, naravno, polju charova) možeš mjenjati podatke tokom njegovog lifespana.

 

I onda pravilno postupanje sa lozinkom (u ovome slučaju, da ne ulazimo u problematiku manipulacije u plain-textu) je ovako

 

if (userPass == userPassDb)

{

 Array.Clear(userPass, 0, userPass.length);

 Array.Clear(userPassDb, 0, userPassDb.length);

 MessageBox.Show("Prijava uspješna")

}

else

{

 //analogno gornjem bloku

}

You can patch technical vulnerabilities as they evolve, but there is no patch for stupidity, or rather gullibility. - Kevin Mitnick
Poruka je uređivana zadnji put ned 9.11.2014 10:59 (Bukva).
12 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Ispravio sam ali opet mi ne radi, uopće ne dohvaća podatak iz baze i ne sprema mi ga u dbPassword? Stavio sam breakpoint na čitav try block i za svaku mi vrijednost piše null?

 

using System;

using System.Collections.Generic;

using System.Data.SqlClient;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Globalization;

 

 

namespace Bank

{

   class aBankar

   {

 

     //private int bankarID;

     //private string imeBankara;

     //private string prezimeBankara;

     //private string korImeBankara;

     private string lozinkaBankara;

 

     public aBankar(string lozinkaBankara)

     {

      /* this.imeBankara = imeBankara;

       this.prezimeBankara = prezimeBankara;

       this.korImeBankara = korImeBankara;

      */

       this.lozinkaBankara = lozinkaBankara;

     }

 

 

     public override string ToString()

     {

       return lozinkaBankara;

     }

/*

    public string Ime

     {

       get

       {

         return imeBankara;

       }

     }

 

     public string Prezime

     {

       get

       {

         return prezimeBankara;

       }

     }

 

     public string Korisnicko

     {

       get

       {

         return korImeBankara;

       }

     }

 

    */

 

     public string Lozinka

     {

       get

       {

         return lozinkaBankara;

       }

     }

 

     static String connectionStr = @"Data Source='.\SQLEXPRESS';

                    Initial Catalog=Bank;

                    Integrated Security=True";   

 

     public static aBankar Load_pass(string userName)

     {

 

       string query = @"SELECT Lozinka FROM aBankar WHERE KorisnickoIme =" + userName;

       SqlConnection connection = new SqlConnection(connectionStr);

 

       try

       {

         connection.Open();

         SqlCommand command = new SqlCommand();

         command.Connection = connection;

         command.CommandText = query;

         SqlDataReader reader = command.ExecuteReader();

         reader.Read();

 

         aBankar dbPassword = new aBankar(reader.GetString(0));

 

 

         reader.Close();

         return dbPassword;

 

 

       }

 

       catch (SqlException x)

       {

         Console.WriteLine(x.Message);

         return null;

       }

       catch(Exception x)

       {

         Console.WriteLine(x.Message);

         return null;

       }

 

       finally

       {

 

         connection.Close();

         connection.Dispose();

       }

 

     }

   }

}

Poruka je uređivana zadnji put ned 9.11.2014 11:04 (Xyloto).
16 godina
offline
Re: C# - Problemi i rješenja

Izbaci Where kaluzulu, provrti kroz foreach sve recorde u readeru, postavi provjeru u Watchu da li ti koji record iz foreacha hita userPass.

 

U Watchu upišeš

trenutniItemIzForeacha == userPass

 

You can patch technical vulnerabilities as they evolve, but there is no patch for stupidity, or rather gullibility. - Kevin Mitnick
12 godina
neaktivan
offline
C# - Problemi i rješenja

 

Kako da napravi da mi ispis bude poravnat, da ne bude ovakav:

 

 

ID        | Ime        | Prezime      | Grad       | Datum      | Broj računa    | OIB       

104        | Marko      | Ivic      | Zagreb      | 24.8.1991.  | 1         | 8        

108        | Valentin     | Ivancic       | Zagreb       | 1.1.1900. | 2         | 9        

120        | Ivan       | Maric      | Zagreb       | 4.2.1992. | 222        | 1

 

 

rchTxtData.AppendText(String.Format("{0,-15} | {1,-15} | {2,-15} | {3,-15} | {4,-14} | {5,-15} | {6,-15}\n", "ID", "Ime", "Prezime", "Grad", "Datum", "Broj računa", "OIB"));

 

rchTxtData.AppendText(String.Format("{0,-15} | {1,-15} | {2,-15} | {3,-15} | {4,-15} | {5,-15} | {6,-15}\n", klijent.getKlijent_ID.ToString(), klijent.getIme, klijent.getPrezime, klijent.getGrad, klijent.getDatum, klijent.getBroj_racuna, klijent.getOIB));           

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Treba ti drugi font, poput Courier New koji za svaki znak odvaja istu količinu mjesta. A onda ti neće biti problem poravnati.

12 godina
neaktivan
offline
Re: C# - Problemi i rješenja

 

Provjerit cu nisam još  za svojim racunalom, hvala.

Poruka je uređivana zadnji put pet 14.11.2014 10:23 (Xyloto).
10 godina
neaktivan
offline
C# - Problemi i rješenja

Pomoć,

 

trebao bih loadat više XML-a sa više linkova: 

http://3d.probado.igd.fraunhofer.de/Probado3DOAI/?verb=GetRecord&metadataPrefix=p3dm&identifier=1

http://3d.probado.igd.fraunhofer.de/Probado3DOAI/?verb=GetRecord&metadataPrefix=p3dm&identifier=2

...

 

Petlja bi trebala prestati loadati kad vise nema dokumenata, tj kad linkovi izbacuju drugaciji yml u kojem je definiran error.  

 

 

 static void Main(string[] args)

     {

  var i = 1;

       do{

         XDocument doc = XDocument.Load(args[0] + "/?verb=GetRecord&metadataPrefix=p3dm&identifier=" + i); 

         var node = doc.Descendants("identifier").First().Value; 

         doc.Save("anything" + i + ".xml");          

         i++;

 

       } while (node == i);  // value u elementu <identifier> je isto kao -i, sve do kraja kada identifier nestaje...zato ovaj uvijet

 

 

Sad dobijem gresku The name 'node' does not exist in the current context za zadnji red.

 
0 0 hvala 0
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Deklariraj "node" gore iznad do..while petlje, tamo gdje si deklarirao "i".

 

[edit] - provjeravaj gdje ti id-evi završavaju... Probaj sa 9999 npr. Dobiješ ovo: <error code="idDoesNotExist"/>

My name is Legion... For we are many!
Poruka je uređivana zadnji put pet 14.11.2014 21:20 (Sum_of_all_fears).
10 godina
neaktivan
offline
Re: C# - Problemi i rješenja

ne mogu gore kad mi gore "doc" nije definiran, a "node" je value od elementa iz "doc". 

 

provjeravam, idu do 23243, br. 23244 više nema zapisa. To me i mući, kako da prestanem brojat kad dodje do tamo.

 

Anyway, tnx.

16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Pa ovako...

 

bool work = true;

do{

    // sad tu ide tvoj dio posla

    node... bla

    if (node == "Error" | node == null)

    {

        work = false;

    }

}

while (work);

My name is Legion... For we are many!
Poruka je uređivana zadnji put sub 15.11.2014 9:51 (Sum_of_all_fears).
12 godina
neaktivan
offline
C# - Problemi i rješenja

EDIT: Uspio sam rješiti

Poruka je uređivana zadnji put sri 3.12.2014 22:18 (Xyloto).
 
0 0 hvala 0
14 godina
neaktivan
offline
C# - Problemi i rješenja

Imam jedno pitanje. Mozda je vise vezano uz baze podataka, ali ima veze sa c#-om.

Trebam iz c# programa mySQL bazi "poslati" neke podatke. Pratio sam ovo http://www.codeproject.com/Articles/43438/Connect-C-to-MySQL 

Baza nije lokalna, odnosno nije na korisnikovom racunalu, nego online (na web serveru).

Poprilicno sam siguran da sam dobro upisao sve podatke. Zanima me samo sto bi tocno trebao upisati pod server. Moze li to biti samo domena (ili ip koji sam dobio u mailu kad sam zakupio hosting), ili mora biti nesto drugo?

MySqlException.NUMBER  je 0 (cannot connect to database).

Stvarno prvi puta radim ovako nesto i svaka pomoc mi je dobrodosla (ili neki drugi link sa mozda boljim pojasnjenjem).


PUNO HVALA 

Potpis
Moj PC  
0 0 hvala 0
16 godina
offline
Re: C# - Problemi i rješenja

Točan odgovor je - zavisi. Onaj koji tebi nešto znači - IP.

Pripazi jedino da je na bazi omogućeno remoting spajanje. Ako si zakupio bazu preko hostinga, a pokušavaš tu bazu pingati sa "vansjskog" računala, vjerojatno te blokira ili firewall ili same postavke na bazi, odnosno virtualki, odnosno lokalnom DNS-u (čitaj kontaktiraj providera).

You can patch technical vulnerabilities as they evolve, but there is no patch for stupidity, or rather gullibility. - Kevin Mitnick
14 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Samo sam trebao dodati svoj IP u popis dozvoljenih{#}

 

Buduci da bih zelio da svaki korisnik moze poslati podatke bazi, ovo nije opcija. Jedino sto mi sada pada na pamet je da nekako iz C# programa pokrenem PHP na serveru koji bi onda dodavao to u bazu. Buduci da nemam blage veze o PHP-u, molio bih da mi sugerirate od cega poceti guglati za nesto ovako (ili naravno, neki bolji nacin).


Hvala 

Potpis
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Promijeni hosting.

 

Koji god da sam uzimao, niti jedan me nije ograničavao na taj način. Alternativno ti je dignuti WCF servis koji ima uvijek istu IP pa da klijenti preko njega komuniciraju sa bazom.

My name is Legion... For we are many!
17 godina
offline
C# - Problemi i rješenja

Zamoli support da otvori spajanje na mysql iz vana i to je to. Dakle, ne staviti samo svoj IP nego stavi % tako da se mos spojit sa bilo kojeg IP-a.

Rvat katolik!
 
1 0 hvala 1
14 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Luka Ivanković kaže...

Samo sam trebao dodati svoj IP u popis dozvoljenih{#}

 

Buduci da bih zelio da svaki korisnik moze poslati podatke bazi, ovo nije opcija. Jedino sto mi sada pada na pamet je da nekako iz C# programa pokrenem PHP na serveru koji bi onda dodavao to u bazu. Buduci da nemam blage veze o PHP-u, molio bih da mi sugerirate od cega poceti guglati za nesto ovako (ili naravno, neki bolji nacin).


Hvala 

Imao sam takav problem. Čak sam se i uspio spojiti na mysql koji je na mom hostingu iz moje aplikacije ali komunikacija je jednostavno prespora.

 

Na kraju sam zakupio Windows hosting, i to samo malu MS SQL bazu na njemu. Dobio korisničke podatke i normalno se preko interneta na nju spojio iz svoje aplikacije, kao i ostali ljudi iz drugih zemalja.

13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

I ja sam u izradi Windows phone aplikacije i imao sam sličnu stvar napravit da radi. Znaci aplikacja piše / čita podatke iz baze podataka. Pošto nemam para za zakup hostiga odlučio sam nabaciti na  neki free hosting wordpress site i preko phpadmina napraviti svoju bazu mysql. napravio sam page koji preko http  zahtjeva prima podatke i onda se mysql code uz php odvija na stranici  i sve se spremi u bazu. Malo vise posla ima kod povlačenja podataka iz baze ali za to sam odradio malo webscrapinga i stvar funkcionira solidno

vlastoručni potpis
14 godina
neaktivan
offline
C# - Problemi i rješenja

Uspio sam sve sredit, hvala svima.

Komunikacija je dosta spora (1-2 sekunde da posalje 2 kratka stringa i int bazi...). Mozda je problem u jeftinom hostingu od 2 dolara.
Meni te 2 sekunde nisu problem, nekome mozd ahoce bit.

Hvala jos jednom svima 

Potpis
Moj PC  
0 0 hvala 0
11 godina
neaktivan
offline
C# - Problemi i rješenja

bog ljudi.

imam jedno pitanje (možda je jednostavno) iz c - a pa ako mi možete pomoći (znam da je tema c# ali nisam nasao temu vezanu za c )

kako mogu returnati niz iz funkcije (npr. od više nizova funkcija mi provjerava koji ima najveći zbroj elemenata te mi istog treba poslati u main da ga ispišem )

 

 

 

PeMaCN
Moj PC  
0 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice