Nella gestione delle entità, può capire l'esigenza di avere due oggetti con gli stessi dati, compresa anche la chiave primaria. E di creare una copia dell'oggetto (tranne per il valore chiave) come nuovo record.
Se proviamo a modificare la chiave, verrà scatenata un'eccezione, nel quale non è possibile modificare il campo chiave.
Per risolvere tale problema, dobbiamo utilizzare il metodo ChangeObjectState della proprietà ObjectStateManager della classe contesto
Qui di seguito un esempio ne linguaggio C#:
MIATABELLA objTab = Dato();
Context.ObjectStateManager.ChangeObjectState(objTab , EntityState.Added);
objTab.ProprietA1 = "Valore";
objTab.CHIAVE = "Nuovo valore";
Context.SaveChanges();
martedì 25 novembre 2014
sabato 22 novembre 2014
Ext.Net 1.x GridPanel problem cell layout Chrome
In alcune versioni di Chrome, utilizzando il controllo GridPanel versione 1.x, si verifica un errore di formattazione, con l'ultima cella disallineata alla griglia.
Per ovviare a tale problema, inserire nella parte css della pagina Aspx, il seguente stile.
.x-grid3-cell
{
box-sizing: border-box;
}
Per ovviare a tale problema, inserire nella parte css della pagina Aspx, il seguente stile.
.x-grid3-cell
{
box-sizing: border-box;
}
giovedì 20 novembre 2014
Ext.Net How to show loading mask on the page eventi click button
Nella versione 1.x di Ext.Net, se vogliamo visualizzare la maschera di attesa durante il click di un pulsante, dobbiamo impostare nell'evento click del pulsante il parametro eventMask.
L'esempio qui di seguito illustra come eseguire l'evento click del pulsante, utilizzando il parametro per la visualizzazione della maschera di attesa.
Click Handler="Coolite.AjaxMethods.Evento_Click({eventMask:{showMask:true, msg:'Caricamento in corso...'}});"
L'esempio qui di seguito illustra come eseguire l'evento click del pulsante, utilizzando il parametro per la visualizzazione della maschera di attesa.
Click Handler="Coolite.AjaxMethods.Evento_Click({eventMask:{showMask:true, msg:'Caricamento in corso...'}});"
martedì 18 novembre 2014
ext.net textfield numbers only
Nel caso che si vuole rendere il controllo Textfield di tipo solo numerico, impostando la proprietà MaskRe="[0-9]*"
Opppure utilizzare il controllo NumberField.
Opppure utilizzare il controllo NumberField.
venerdì 14 novembre 2014
Download free Visual Studio Community 2013
Novità importante per tutti gli sviluppatori, da qualche giorno è possibile scaricare gratuitamente la versione Visual Studio Community 2013, un nuovo ambiente di sviluppo, simile a Visual Studio 2013 professional, ideato per singoli programmatori, studenti e per progetti open source.
Per il download e maggiori informazioni visitate il seguente sito http://www.visualstudio.com/en-us/products/visual-studio-community-vs
Per il download e maggiori informazioni visitate il seguente sito http://www.visualstudio.com/en-us/products/visual-studio-community-vs
mercoledì 12 novembre 2014
Download Microsoft Visual Studio Ultimate 2015 Preview
Dal seguente sito http://www.microsoft.com/en-us/download/details.aspx?id=44934 è possibile scaricare la versione Visual Studio 2015 preview, il nuovo ambiente di sviluppo di Microsoft.
Si ricorda che essendo una versione beta, si consiglia l'installazione su macchine virtuali.
domenica 9 novembre 2014
.Net eseguire query su database diferenti C# e VB.Net
Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_eseguire-query-su-database-differenti_1355.aspx
In questo articolo vedremo come realizzare una semplcie applicazione che permette di eseguire le query su database differenti, in particolare nell'articolo vedremo come effettuare la select su un database di tipo Microsoft Access e Microsoft Sql Server, il tutto utilizzando le librerie Enterprise Library, di Microsoft.
Creazione del progetto
Si crea un progetto di tipo Windows Application, selezionando il linguaggio di programmazione di proprio interesse.
Nella form, inserimano alcuni controlli come una label, una textbox e due pulsanti.
I pulsanti avranno il compito di eseguire le query che viene per i vari database, un pulsante per il database Access e l'altro per il pulsante SQL.
Stesura del codice
Passiamo in visualzzazione codice ed aggiungiamo lo spazio dei nomi riguardante la gestione dei database ed in particolare della libreria EnterpriseLibrary.Data.
Qui di seguito si riporta tale frammento di codice:
Ora dobbiamo scrivere il codice che fornita una query, o meglio un istruzione SQL la esegua a prescindere dalla fonte dati.
La funzione qui di seguito, accetta tre argomenti, la connessione alla fonte dati, ossia la query string, il tipo di provider, ossia che base, (Sql Server, Access, Oracle, etc) e la query.
La funzione restituisce un oggetto di tipo Database, il quale viene valorizzato, quando si esegue la funzione ExecuteDAtaSet dell'oggetto di tipo Database.
Qui di seguito si riporta il frammento di codice per entrambi i linguaggi.
Ora non ci resta che scrivere la funzione per eseguire tale query.
Un pulsante richiamerà la funzione impostando come valori, la connectionstring, il tipo di database e la query.
Qui di seguito si riporta il codice per entrambi i linguaggi e per i due database.
Conclusioni
L'articolo ha voluto illustrare una tecnica per estrapolare i dati da database differenti, rendendo in questo modo il nostro programma flessibile su più fonti di dati. Questa tecnica ci permette di rendere le nostre applicazioni flessibili con un alta interoperabilità nella gestione di database differenti, senza modificare il codice.
Tramite semplici impostazioni al programma, che possono essere passate anche dall'esterno, possiamo renderlo facilmente flessibile minimazzando la manutenzione del codice.
Tramite il link download è possibile scaricare il file di esempio di questo articolo.
In questo articolo vedremo come realizzare una semplcie applicazione che permette di eseguire le query su database differenti, in particolare nell'articolo vedremo come effettuare la select su un database di tipo Microsoft Access e Microsoft Sql Server, il tutto utilizzando le librerie Enterprise Library, di Microsoft.
Creazione del progetto
Si crea un progetto di tipo Windows Application, selezionando il linguaggio di programmazione di proprio interesse.
Nella form, inserimano alcuni controlli come una label, una textbox e due pulsanti.
I pulsanti avranno il compito di eseguire le query che viene per i vari database, un pulsante per il database Access e l'altro per il pulsante SQL.
Stesura del codice
Passiamo in visualzzazione codice ed aggiungiamo lo spazio dei nomi riguardante la gestione dei database ed in particolare della libreria EnterpriseLibrary.Data.
Qui di seguito si riporta tale frammento di codice:
VB.Net
Imports System
Imports
System.Collections.Generic
Imports
System.Linq
Imports
System.Text
Imports
System.IO
Imports
Microsoft.Practices.EnterpriseLibrary.Data
Imports
System.Data
Imports
System.Data.Common
C#
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.IO;
using
Microsoft.Practices.EnterpriseLibrary.Data;
using
System.Data;
using
System.Data.Common;
using System.Windows.Forms;
Ora dobbiamo scrivere il codice che fornita una query, o meglio un istruzione SQL la esegua a prescindere dalla fonte dati.
La funzione qui di seguito, accetta tre argomenti, la connessione alla fonte dati, ossia la query string, il tipo di provider, ossia che base, (Sql Server, Access, Oracle, etc) e la query.
La funzione restituisce un oggetto di tipo Database, il quale viene valorizzato, quando si esegue la funzione ExecuteDAtaSet dell'oggetto di tipo Database.
Qui di seguito si riporta il frammento di codice per entrambi i linguaggi.
Vb.Net
Function
GetDati(Connessione As String,
Provider As String,
Sql As String) As DataTable
Dim
RisultatoDTT As New
DataTable
Try
Dim
dbProviderFactory As DbProviderFactory
= DbProviderFactories.GetFactory(Provider)
Dim
Database As Database
= New GenericDatabase(Connessione,
dbProviderFactory)
Dim
dbCommand As DbCommand
DbCommand =
Database.GetSqlStringCommand(Sql)
RisultatoDTT =
Database.ExecuteDataSet(dbCommand).Tables(0)
Catch
ex As Exception
Throw
ex
End Try
Return
RisultatoDTT
End Function
C#
DataTable
GetDati (string
Connessione, string Provider, string Sql)
{
DataTable
RisultatoDTT = new DataTable();
try
{
DbProviderFactory
dbProviderFactory = DbProviderFactories.GetFactory(Provider);
Database
database = new GenericDatabase(Connessione,
dbProviderFactory);
DbCommand dbCommand = default(DbCommand);
dbCommand =
database.GetSqlStringCommand(Sql);
RisultatoDTT =
database.ExecuteDataSet(dbCommand).Tables[0];
}
catch
(Exception ex)
{
throw
ex;
}
return RisultatoDTT;
}
Ora non ci resta che scrivere la funzione per eseguire tale query.
Un pulsante richiamerà la funzione impostando come valori, la connectionstring, il tipo di database e la query.
Qui di seguito si riporta il codice per entrambi i linguaggi e per i due database.
Access
Vb.Net
Private
Sub btnEsegui_Click(sender As System.Object,
e As System.EventArgs)
Handles btnEsegui.Click
Dim
Dati As DataTable
= GetDati("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=E:\test.mdb", "System.Data.OleDb",
TxtSql.Text)
MessageBox.Show("Record Totali: " & Dati.Rows.Count)
End Sub
C#
private
void btnEsegui_Click(object
sender, EventArgs e)
{
DataTable
Dati = GetDati(@"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=E:\test.mdb", "System.Data.OleDb",
TxtSql.Text);
MessageBox.Show("Record Totali: " + Dati.Rows.Count);
}
Sql Server
VB.Net
Private
Sub BtnEseguiMS_Click(sender As System.Object,
e As System.EventArgs)
Handles BtnEseguiMS.Click
Dim
Dati As DataTable
= GetDati("Server=localhost;Database=test;Trusted_Connection=True;",
"System.Data.SqlClient",
TxtSql.Text)
MessageBox.Show("Record Totali: " & Dati.Rows.Count)
End Sub
C#
private
void button1_Click(object
sender, EventArgs e)
{
DataTable
Dati = GetDati(@"Server=localhost;Database=test;Trusted_Connection=True;",
"System.Data.SqlClient",
TxtSql.Text);
MessageBox.Show("Record Totali: " + Dati.Rows.Count);
}
Conclusioni
L'articolo ha voluto illustrare una tecnica per estrapolare i dati da database differenti, rendendo in questo modo il nostro programma flessibile su più fonti di dati. Questa tecnica ci permette di rendere le nostre applicazioni flessibili con un alta interoperabilità nella gestione di database differenti, senza modificare il codice.
Tramite semplici impostazioni al programma, che possono essere passate anche dall'esterno, possiamo renderlo facilmente flessibile minimazzando la manutenzione del codice.
Tramite il link download è possibile scaricare il file di esempio di questo articolo.
giovedì 6 novembre 2014
Ext.Net getValue DateField javascript
Il frammento di codice qui di seguito, illustra una tecnica di come ottenere il valore di un controllo DateField in Javascript, in formato mese anno.
DataField1.getValue().format('mY')
DataField1.getValue().format('mY')
domenica 2 novembre 2014
Visual Studio Arduino
Se siete interessati a sviluppare le applicazioni per Arduino in ambiente Visual Studio, dal seguente sito http://www.visualmicro.com/ potete scaricare un componente per Visual Studio che integra in tale ambiente di sviluppo tale possibilità.
Iscriviti a:
Post (Atom)