Salve a tutti ho un palmare Asus 636n con Windows Mobile 5 e un pc con Wionwdos 7 Home Premium . Sto cercando di imparare a creare programmi per palmari. La prima cosa che volevo fare e popolare una datatable connettendomi dal mio palmare sql server express installato sul mio pc.
Per prima cosa ho creato una nuova connessione Wifi ad Hoc così che ho collegato il palmare al pc. Il tutto funziona correttamente in quanto dal palmare posso accedere alle cartelle condivise.
Poi ho creato questo piccolo programmino
Dim ConnectionString As String = "Data Source=192.168.0.15;Database=HS_Dbase;Integrated Security=True;User ID=HiddenHack;Password=HHvf27-08-07;"
Private Sub btn_Carica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Carica.Click
Try
Dim dt As New DataTable("DTTest")
Dim Query As String = "SELECT Cliente_ID, Ragione_Sociale, Descrizione, Forma_Giuridica, PIVA, CodiceFiscale, DataCreazione, Matric_Creazione, DataUpdate, Matric_Update, Stato, Fido, FidoDal, FidoAl FROM dbo.Clienti"
Dim command As New SqlCommand(Query)
Using connection As New SqlConnection(ConnectionString) command.Connection = connection connection.Open()
command.Connection = connection
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader dt.Load(reader) reader.Close() connection.Close()
dt.Load(reader)
reader.Close()
connection.Close()
End Using dt_Dati.DataSource = dt MessageBox.Show(
dt_Dati.DataSource = dt
MessageBox.Show(
"Caricamento completato", "TEST WiFi", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)
Catch ex As Exception MessageBox.Show(
"Errore:" + ex.Message, "WiFi Test", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
End Try
End Sub
Però quando vado a lanciare il mio programma dal palmare nel momento in cui faccio click su carica sta un pò di tempo e poi mi restituisce l'errore sqlconnection.
Dove sto sbagliando?
Ho configurato sql server expresss per l'accesso da remoto, almeno credo.
Ho avviato Sql Server Configuration Manager
Ho abilitato il protocollo TCP/IP Poi in proprietà ho abilitato IP1 dove ho inserito l'ip del pc sul quale e installato sql server express. come TCP Dynamics port ho inserito valore nullo vuoto, come TCP Port ho inserito 1433. Dopo ho riavviato sia SQL Express sia SQL Browser. Perchè il tutto non funziona? Dove sto sbagliando?
Ciao Francesco, mi potresti postare l'errore preciso che viene generato?
Capisc e dotnet tu? No! E allor che parl a fà!
Non mi da nessun errore spicifica nella messagbox mi mostra solo Errore: SqlExpress e non ho capito ancora perchè.
Quello che non sono ancora in grado di capire è che non so se l'errore dipende dal palmare o dal fatto che sqlexpress è condiviso correttamente.
Come faccio a vedere o a testare la condivisione di sqlexpress senza dovera testare da remoto? Per quanto riguarda il firewall per evitare ogni frainteso l'ho totalmente disabilitato ma niente da fare. Da cosa potrebbe dipendere?
Ora provo ad inserire nel messaggio di errore err.number ed err.description e ti faccio sapere.
Grazie.
La prima cosa che puoi provare è a connettere il pamare con active sync e rifare il test. Se anche questo non dovessere andare, nella configurazione di SQL Server, imposta come vuoto il campo di tutte le porte TCP dinamiche, e prova ad impostare la porta TCP sotto "IPALL" (ultimo della lista), con la porta 1433.
Inoltre solo ora ho notato che la tua stringa di connessione è incorretta!
Hai dimenticato di inserire il numero della porta, obbligatorio per applicazioni smart device in tale contesto. Quindi modifica la stringa così:
Dim ConnectionString As String = "Data Source=192.168.0.15, 1433;Database=HS_Dbase;Integrated Security=True;User ID=HiddenHack;Password=HHvf27-08-07;"
Fammi sapere se riesci a risolvere.
Ok faccio qualche prova e poi ti faccio sapere.
Nel frattempo ti ringrazio per la tua disponibilità
Scusa Antonio ma mi viene un dubbio sulla configurazione del pc e di sql express.
Ti illustro quello che ho fatto:
Ho creato una connessione ad Hoc tra pc e palmare e ho impostato ip statico per la shceda WiFi del mio pc un ip statico e gli ho dato i seguenti valori
IP 192.168.0.15 subnet masck 255.255.255.0 gatway 192.168.0.1 (Su quest'ultimo ho un dubbio in quanto io non ho un router o gatway però l'ho impostato lo stesso)
Poi nel fare la procedura per sql express ho impostato come ip1 il 192.168.0.15 per gli altri li ho lasciati invariati, mentre poi ho impostato su yes la proprieta Active e Yes sulla proprietà Enabled. Ho sbagliato per caso qualcosa nella procedura di configurazione?
In quanto dopo tante prove ancora non funonzia.
Vi ringrazio per la vostra disponibilità
Prova a mettere la porta 1433 nella voce TCP di IP1, e prova a mettere la stessa porta anche sotto IPALL. Prova anche a verificare se la connessione ad hoc viene effettuata e se pc e palmare si vedono tra loro.
Purtroppo se hai WM5 e Active Sync 4.5 non puoi verificare se il dispositivo si connette per la sincronizzazione. Puoi però provare uno strumento del genere per fare il ping.
Tra palmare e pc si vedono tranquillamente in quanto ho sul palmare resco explorer e posso visionare tutte le cartelle condivise del mio pc ( ho totalmente disabilitato il firewall per fare le prove).
Mi sembra di aver già messo ad ip1 e ipall la porta 1433 come mi hai detto tu ma niente.
Faccio qualche altra prova e ti faccio sapere.
Giusto per è corretto il fatto che ho impostato l'ip statico del pc? E se non potessi impostarlo come potrei gestire la cosa?
Grazie
Beh teoricamente, se conosci a priori l'ip del pc dove c'è l'istanza di SQL Server (e questo non viene modificato dal DHCP), puoi anche non impostarlo in modo statico. Il punto è che nella connection string della tua mobile app, devi per forza dare un indirizzo ip, ma non una cosa del tipo NomeServer\NomeIstanza, perché non è supportato.
Hai per caso provato a testare l'app con un emulatore?
Non ho provato a testarlo con l'emulatore in quanto con l'emulatore non so come fare per stabilire la connessione con il pc.
Pensavo fosse in automatico però poi dopo aver fatto alcune prove ho visto che non faceva carte e allora ho provato direttamente dal palmare dato che avevo la condivisione della cartella contente il progetto.
Comuque faccio qualche prova e poi ti faccio sapere.
Grazie per la disponibilità!
E' da impazzire come una cosa così semplice possa diventare una tortura.
Ti conviene testarla prima su emulatore, almeno in questo modo sai che il problema deriva da una connessione non riuscita tra pc e device e non dalla tua applicazione.
Ti ho fatto un post per la configurazione della scheda di rete sul dispositivo.
Ricorda anche di fare il cradle del dispositivo prima di testare l'app.
Ok, faccio qualche test utilizzando l'emulatore e poi ti faccio sapere.
Ti ringrazio per l'aiuto
E' normale che mi chieda di installare Virtual PC 2007 per configurare la scheda di rete sul mio Emulatore di Pocket PC.
Si, mi ero dimenticato di questo step perchè ho già VirtualPC sulla mia macchina. In pratica per la connessione alla rete degli emulatori, c'è bisogno di un driver che viene installato con VirtualPC. Ti rimando ad un post di Fabio Castagnino che affronta la risoluzione del problema.
faccio una domanda banale...ma SqlServer è configurato per l'accesso remoto?
Associazione Culturale DotNetCampania - C.F.: 95127870632