[ aca andrijevic @ 03.04.2009. 12:30 ] @
Relativno sam skoro poceo da ucim programiranje, pa sam resio da pocnem u VB.NET-u.
Napravio sam neki tip adresara koji vraca vrednosti iz Access baze veoma prosto,i koji ima search polje.
Resavanje da ne moze da se vrati vrednost iz baze kad je polje za pretragu prazno sam veoma prosto resio:


Code:

If Pozivni_znakToolStripTextBox.Text = "" Then
            System.Windows.Forms.MessageBox.Show("Niste uneli pozivni znak")
        End If


Ali kako da resim da kad se unese neki pozivni znak u polje za pretragu, a nema ga u koloni iz baze ili kad se unese neki drugi karakter koji nije string, da
mi izbaci slicnu poruku.Probao sam ovako ali dobijam error:

Code:

If Pozivni_znakToolStripTextBox.Text <> Me.DataSet1.Table1.Pozivni_znakColumn Then
            System.Windows.Forms.MessageBox.Show("Pozivni znak ne postoji")
        End If


Mislim da je greska u operatoru <> ,ali nisam siguran.



Jeste da je mozda laicko pitanje, ali eto malo je ovo novo za mene. 8)
[ bigguy @ 04.04.2009. 10:38 ] @
A sta ti tacno vraca kao gresku? Sta izbacuje u error polju?
[ aca andrijevic @ 05.04.2009. 08:29 ] @
Error 1 Overload resolution failed because no accessible '<>' can be called with these arguments:
'Public Shared Operator <>(a As String, b As String) As Boolean': Value of type 'System.Data.DataColumn' cannot be converted to 'String'. C:\Users\Administrator\My Documents\Visual Studio 2005\Projects\Uspela\Uspela\Form1.vb 14 12 Uspela


[ marko1981 @ 05.04.2009. 10:46 ] @
Code:

If Pozivni_znakToolStripTextBox.Text <> Me.DataSet1.Table1.Pozivni_znakColumn


(Pozivni_znakToolStripTextBox.Text) je tipa String, a (Me.DataSet1.Table1.Pozivni_znakColumn) je tipa System.Data.DataColumn, a oni se ne mogu porediti.

Mozda si mislio na ime kolone, a to bi bilo Me.DataSet1.Table1.Pozivni_znakColumn.ColumnName, sto je tipa string.

Citat:

kad se unese neki drugi karakter koji nije string


Sta god da uneseš u TextBox, to je string.
[ aca andrijevic @ 05.04.2009. 11:31 ] @
Prakticno treba da uporedi text koji unesem u text box i rekord iz kolone Pozivni_znak, i ako ne moze da nadje, da mi vrati poruku o gresci.


Code:

If Pozivni_znakToolStripTextBox.Text <> Me.DataSet1.Table1.Pozivni_znakColumn.Namespace Then
            System.Windows.Forms.MessageBox.Show("Pozivni znak ne postoji")


Ovako npr moze, ali mi onda izbaci poruku cak i kad taj pozivni znak postoji u toj koloni.

Prosto govoreci treba da bude:

Code:

If Pozivni_znakToolStripTextBox.Text <> Me.DataSet1.Table1.Pozivni_znakColumn.String(svi pozivni znaci iz kolone) Then
            System.Windows.Forms.MessageBox.Show("Pozivni znak ne postoji")


ali 'System.Data.DataColumn' ne podrzava string.
[ marko1981 @ 05.04.2009. 13:39 ] @
Ne radim u VB, ali evo jedno jednostavno rešenje u C#, prilagodi ga VB-u.

Code:

bool found = false;

// prodji kroz sve redove u tabeli
foreach (DataRow row in this.DataSet1.Table1.Rows)
{
  // proveri vrednost kolone Pozivni_znak za tekuci red petlje
  if ((Convert.ToString(row["Pozivni_znak"]).Equals(Pozivni_znakToolStripTextBox.Text) == true)
  {
     // pronadjen je red
     found = true;  
     
     // prekini petlju
     break;
  }
}

if (found == false)
{
   System.Windows.Forms.MessageBox.Show("Pozivni znak ne postoji")
}
else
{
   
}

gde je "Pozivni_znak" tačan naziv kolone (ColumnName) koji si stavio kada si pravio DataSet.
[ marko1981 @ 05.04.2009. 13:41 ] @
A ovo

Code:

If Pozivni_znakToolStripTextBox.Text <> Me.DataSet1.Table1.Pozivni_znakColumn.Namespace Then
            System.Windows.Forms.MessageBox.Show("Pozivni znak ne postoji")


ti je prošlo, odnosno, nije bilo greške, samo zato što je NameSpace property tipa String, pa može da se uporedi sa Text property-em koji je takodje String.