Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    66

    ACCESSDATASOURCE - Passaggio codice vb a query

    Ciao a tutti

    mi interfaccio ad un databasse access tramite accessdatasource facendo una query su una tabella dove dovrei passare come parametro l'anno corrente. l'anno sul db è definito come STRING

    Ora io utilizzo ovviamente il tool di conigurazione schema, dove posso premendo il tasto WHERE entrare nella finestra della clausola WHERE e gli dico:

    Colonna : ANNO
    operatore : =
    Origine : NONE

    e sul campo valore dico : year(now())

    ... non funziona. mi restituiste una query vuota perche lui prende la stringa del codice che ho scritto come valore

    ho provato anche : =year(now()) e =year(now()).tostring e & year(now())

    Grazie per l'attenzione

    M.

  2. #2
    Utente di HTML.it L'avatar di _J_
    Registrato dal
    Apr 2007
    Messaggi
    218
    ciao
    premetto che non conosco il vb, ma spero di aiutarti comunque...

    ti consiglio di non passare direttamente la data mediante year.now()...
    potresti usare o una textbox o una label invisibili che contengano year.now(), e passare poi queste alla where come origini...

    spero di esserti stato utile

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    66
    Tu hai indubbiamente ragione e funziona, ma volevo capire se e come si poteva fare.

    In ASP "normale" era cosi semplice : sql..... where " & year(now()) o una cosa del genere, mi sembra impossibile che in .net non ci sia un metodo altrettanto semplice visto che semplifica cosi tante cose.

    Ti ringrazio cmq

    M.

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da blackend
    In ASP "normale" era cosi semplice : sql..... where " & year(now()) o una cosa del genere, mi sembra impossibile che in .net non ci sia un metodo altrettanto semplice visto che semplifica cosi tante cose.

    M.
    Forse il problema è il punto di partenza :master: . Mi spiego. Dal mio punto di vista, gli accessdatasource, non sono assolutamente necessarii. Basta fare da codice solo poche istruzioni per risolvere semplicemente tutti questi problemi.
    Naturalmente dico questo perchè sono abituato a fare così, però io consiglio compunque di provare a scrivere una istruzione sql utilizzando i parametri.
    Pietro

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    solo per spiegare un po' meglio, se ho una griglia

    <asp:GridView ID="GridView1" runat="server" ></asp:GridView>

    la popolo con i dati della tabella Campi il cui campo Testo contiene l'anno corrente

    il codice è di sole tre righe:
    codice:
    Dim dt As DataTable = libreria.GetDataTable(StringaConnessioneTest, "select * from campi where testo = ? ", libreria.createParameterString("anno", 50, DateTime.Today.Year.ToString()))
    Me.GridView1.DataSource = dt
    Me.GridView1.DataBind()
    Pietro

  6. #6
    Originariamente inviato da pietro09
    il codice è di sole tre righe:
    e' di sole 3 righe perche' usi una tua libreria che quindi hai dovuto scrivere usando altre righe... altrimenti sarebbe di 6 o 7 (con tutti i possibili bachi che ci possono essere dentro).
    Per non parlare di eventuali update e delete.
    Se usi un accessdatasource di righe non ne scrivi nemmeno una. Semmai, se si vogliono usare i comodi oggetti di asp.net 2 e i tableadapter, il consiglio che darei e': invece di usare l'accessdatasource provare ad usare un objectdatasource e crearsi un dataset tipizzato con i vari tableadapter giusto per avere un unico layer di accesso ai dati condiviso.
    Saluti a tutti
    Riccardo

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    66
    Quante seghe ragazzi oh; l'informatica è una scienza e nella scienza si cercano sempre le soluzioni più semplici; ora quello che devo gestire io è una lista di appuntamenti perciò ho fatto cosi : ho aggiunto 2 dropdown una con i mesi presi da db e una con gli anni, le ho legate all accessdatasource della tabella principale passandoli come parametri.

    per prendere poi il mese e l'anno corrente ho usato sul metodo INIT dei due oggetti rispettivamente
    ddlMESE.selectedvalue = monthname(month(now())
    e
    ddlANNO.selectedvalue = year(now())

    problema risolto e soldi intascati

    Grazie tuttavia per l'attenzione

    M.

  8. #8
    Originariamente inviato da blackend
    Quante seghe ragazzi oh;
    sigh...
    Saluti a tutti
    Riccardo

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da riccardone
    sigh...
    sigh... sigh... sigh...
    Pietro

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da riccardone
    e' di sole 3 righe perche' usi una tua libreria che quindi hai dovuto scrivere usando altre righe... altrimenti sarebbe di 6 o 7 (con tutti i possibili bachi che ci possono essere dentro).
    Per non parlare di eventuali update e delete.
    Se usi un accessdatasource di righe non ne scrivi nemmeno una. Semmai, se si vogliono usare i comodi oggetti di asp.net 2 e i tableadapter, il consiglio che darei e': invece di usare l'accessdatasource provare ad usare un objectdatasource e crearsi un dataset tipizzato con i vari tableadapter giusto per avere un unico layer di accesso ai dati condiviso.
    Ho visto solo adesso la tua risposta e debbo spiegare un po' meglio.

    Ho fatto quelle funzioni tanto tempo fa all'uscita del primo framework e adesso le uso senza ricordare neanche cosa ci sia dentro, a forza dell'abitudine. Io sono scettico per natura ad usare oggetti che abbiano la pretesa di non fare scrivere codice al programmatore perchè la fantomatica semplicità cade subito quando si cerca di fare qualcosa di appena diverso dal solito.

    Ma ripeto, è solo che sono abituato a questo modo, non che il mio modo di fare sia migliore o peggiore di altri

    Ciao
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.