vbdotnet.it

Tricks & tips, workaround, forum and ideas with .Net

About the author

Enrico Rossini è il gestore di questo blog.
E-mail me Send mail

Recent posts

Recent comments

Contributi

Best 6 ~ 6 users ~ 6 comments

Info legali

Le opinioni espresse in questo blog sono strettamente personali e ogni persona è responsabile dei commenti che inserisce. I marchi citati sono delle rispettive aziende.

© Copyright 2010

Advertising


Esistenza di una tabella nel database

Ogni tanto c'è la necessità di sapere se sul database è presente una tabella oppure no. Con il seguente codice possiamo verificare facilmente se una tabella esiste. Il parametro da passare è comprensivo di schema, per esempio dbo.Anagrafiche.

In VB.NET:

Function TableExists(tableNameAndSchema As String) As Boolean
   Using connection As New SqlConnection(connectionString)
      Dim checkTable As String = [String].Format("IF OBJECT_ID('{0}', 'U') IS NOT NULL SELECT 'true' ELSE SELECT 'false'", tableNameAndSchema)
      Dim command As New SqlCommand(checkTable, connection)
      command.CommandType = CommandType.Text
      connection.Open()
 
      Return Convert.ToBoolean(command.ExecuteScalar())
   End Using
End Function

e anche in C#:

bool TableExists(string tableNameAndSchema){
   using (SqlConnection connection = new SqlConnection(connectionString))
   {     
     string checkTable = String.Format(
                         "IF OBJECT_ID('{0}', 'U') IS NOT NULL SELECT 'true' ELSE SELECT 'false'", tableNameAndSchema);
       SqlCommand command = new SqlCommand(checkTable, connection);
      command.CommandType = CommandType.Text;
      connection.Open();
 
      return Convert.ToBoolean(command.ExecuteScalar());   
   }
}

Ciao e buon lavoro!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by enrico on Thursday, July 01, 2010 3:43 PM
Permalink | Comments (0) | Post RSSRSS comment feed

Linq e uno o più Left Outer Join

Avendo perso anche tutto il pomeriggio della giornata di oggi a capire come fare in Linq un banale Left Outer Join, vi posto la query in Linq che ho realizzato.

qry = From f In eDoc.Fatture Where f.Data <= tmp Group Join pn In eDoc.PrimaNota On f.IDFattura Equals pn.FatturaID Into fv = _
      Group From p In fv.DefaultIfEmpty Join a In eDoc.Anagrafiche On f.Anagrafica Equals a.IDAnagrafica _
      Where f.Data <= tmp And (p.Data >= tmp Or p.Data Is Nothing) And (f.Annullata Is Nothing Or f.Annullata >= tmp) _
      Select a.IDAnagrafica, f.IDFattura, f.Numero, f.TipoDocumento, a.RagSoc, a.Nome, f.Data, f.Scadenza, f.TotaleImponibile, _
      f.TotaleDocumento, f.TotaleIVA, f.Anticipata, f.AnticipataImporto, f.AnticipataBanca, f.AnticipataData, f.AnticipataPercentuale, f.Riscossa, f.Annullata


Spero che vi sia utile!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: management | vb.net
Posted by enrico on Friday, May 21, 2010 8:55 PM
Permalink | Comments (0) | Post RSSRSS comment feed

VB.NET App.Path

Ogni tanto a me servirebbe la funzione che esisteva nel vecchio VB6 di AppPath. L'ho banalmente ricreata anche in VB.NET

Private Function AppPath() as String
        return System.Windows.Forms.Application.StartupPath
End function

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: vb.net
Posted by enrico on Monday, May 03, 2010 2:11 PM
Permalink | Comments (0) | Post RSSRSS comment feed

Impossibile aggiornare EntitySet...

Lavorando con le entità può succedere che si incontri il seguente problema (Bugs è una tabella):

System.Data.UpdateException: Impossibile aggiornare EntitySet 'Bugs' perché include DefiningQuery e nell'elemento <ModificationFunctionMapping> non esiste alcun elemento <InsertFunction> che supporti l'operazione corrente.

Tale problema si verifica se si usa il mapping da database e la tabella non ha definito una chiave primaria.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by enrico on Tuesday, February 16, 2010 10:49 AM
Permalink | Comments (0) | Post RSSRSS comment feed

contextSwitchDeadlock MDA

Questo errore fortunatamente compare solamente durante il debug di un'applicazione: semplicemente avverte che l'operazione che si sta effettuato sta impiegando molto tempo e risorse. Se però si clicca comunque su "Play" l'applicazione continua a proseguire normalmente la sua attività.

Diversi sono i link interessanti a proposito che vi segnalo:

L'ultimo link è forse quello più completo. Buon lavoro!

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by enrico on Friday, November 06, 2009 6:27 PM
Permalink | Comments (0) | Post RSSRSS comment feed

FindControl ricorsivo

Imports System.Collections.Generic
 
Private Shared Function FindControlIterative(ByVal root As Control, _
        ByVal id As String) As Control
 
        Dim ctl As Control = root
        Dim ctls As LinkedList(Of Control) = New LinkedList(Of Control)
 
        Do While (ctl IsNot Nothing)
            If ctl.ID = id Then
                Return ctl
            End If
            For Each child As Control In ctl.Controls
                If child.ID = id Then
                    Return child
                End If
                If child.HasControls() Then
                    ctls.AddLast(child)
                End If
            Next
            ctl = ctls.First.Value
            ctls.Remove(ctl)
        Loop
 
        Return Nothing
 
End Function

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by enrico on Wednesday, October 28, 2009 4:54 PM
Permalink | Comments (0) | Post RSSRSS comment feed

Creare un combobox con ricerca

Per quanto hai cercato un combobox con la possibilità di ricerca? Ecco una semplice implementazione:

Private Sub CombBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress
        
Dim findString As String = String.Empty
        
If (Not e.KeyChar.IsLetterOrDigit(e.KeyChar, 0)) Then Exit Sub
        findString = e.KeyChar
        
With ComboBox1
            .SelectedIndex = ComboBox1.FindString(findString)
        
End With
        If ComboBox1.SelectedIndex > -1 Then e.Handled = True
End
Sub

Ciao a tutti!

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by enrico on Tuesday, September 15, 2009 12:14 PM
Permalink | Comments (0) | Post RSSRSS comment feed

Cercare un elemento in un combobox

Chissà a quanti è capitato di dover cercare all'interno di un combobox un elemento presente (non un valore). Per risolvere il problema il comando da scrivere è piuttosto semplice:

Me.cb.SelectedIndex = Me.cb.FindString("valore")

Il comando FindString presente tra le proprietà del combobox restituisce un intero che è la posizione del valore cercato all'interno degli elementi presenti nel combobox. In questo caso si è scelto di selezionare il valore trovato.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by enrico on Tuesday, September 15, 2009 12:03 PM
Permalink | Comments (0) | Post RSSRSS comment feed

Focus ad un TextBox

Ciao a tutti e buon Ferragosto! (a chi nn lavora). Oggi un veloce tricks: a me è capitato di dover dare il focus ad un textbox ma non compare il cursore all'interno dello stesso.

La funzione più scontata sarebbe TextBox.Focus(). Invece quella che funziona meglio è TextBox.Select(). Provate e verificate voi stessi!

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by enrico on Saturday, August 15, 2009 12:47 PM
Permalink | Comments (0) | Post RSSRSS comment feed

Formattazione con String.Format

formatting strings

exampleoutput
String.Format("--{0,10}--", "test"); --      test--
String.Format("--{0,-10}--", "test"); --test      --

formatting numbers

specifiertypeformatoutput
(double 1.2345)
output
(int -12345)
c currency {0:c} £1.23 -£12,345.00
d decimal
(whole number)
{0:d} System.FormatException -12345
e exponent / scientific {0:e} 1.234500e+000 -1.234500e+004
f fixed point {0:f} 1.23 -12345.00
g general {0:g} 1.2345 -12345
n number {0:n} 1.23 -12,345.00
r round trippable {0:r} 1.23 System.FormatException
x hexadecimal {0:x4} System.FormatException ffffcfc7

custom number formatting

specifiertypeformatoutput
(double 1234.56)
0 zero placeholder {0:00.000} 1234.560
# digit placeholder {0:#.##} 1234.56
. decimal point placeholder {0:0.0} 1234.6
, thousand separator {0:0,0} 1,235
% percentage {0:0%} 123456%

date formatting

specifiertypeoutput
(June 8, 1970 12:30:59)
d Short Date 08/06/1970
D Long Date 08 June 1970
t Short Time 12:30
T Long Time 12:30:59
f Full date and time 08 June 1970 12:30
F Full date and time (long) 08 June 1970 12:30:59
g Default date and time 08/06/1970 12:30
G Default date and time (long) 08/06/1970 12:30:59
M Day / Month 8 June
r RFC1123 date string Mon, 08 Jun 1970 12:30:59 GMT
s Sortable date/time 1970-06-08T12:30:59
u Universal time, local timezone 1970-06-08 12:30:59Z
Y Month / Year June 1970

custom date formatting

specifiertypeoutput
(June 8, 1970 12:30:59)
dd Day 08
ddd Short Day Name Mon
dddd Full Day Name Monday
hh 2 digit hour 12
HH 2 digit hour (24 hour) 12
mm 2 digit minute 30
MM Month 06
MMM Short Month name Jun
MMMM Month name June
ss seconds 59
tt AM/PM PM
yy 2 digit year 70
yyyy 4 digit year 1970
: seperator, e.g. {0:hh:mm:ss} 12:30:59
/ seperator, e.g. {0:dd/MM/yyyy} 08/06/1970

Currently rated 3.0 by 2 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: asp.net | Generalità | vb.net
Posted by enrico on Friday, August 07, 2009 11:15 AM
Permalink | Comments (0) | Post RSSRSS comment feed