Selezionare alcuni dati dal DB e convertire in formato json

di il
5 risposte

Selezionare alcuni dati dal DB e convertire in formato json

Buonasera, ho un problema, ho bisogno di creare un file che mi legga alcuni dati dal db con c# e li converta in un file json.
Per esempio devo scegliere dalla tabella XXXX i campi AAA1 BBB2 e CCC3, ho scritto la mia select e ho anche la classe BaseDati che si occupa di farmi eseguire la select e mi tira fuori un DataView, ma non so come fare per convertire il file e andare a salvarlo in data.json

Ho visto che si può fare così, ma non so creare l'elemento dt

string json = JsonConvert.SerializeObject(dt, Formatting.Indented);
File.WriteAllText(Server.MapPath("/data.json"), json);

5 Risposte

  • Re: Selezionare alcuni dati dal DB e convertire in formato json

    Mars95 ha scritto:


    ho scritto la mia select e ho anche la classe BaseDati che si occupa di farmi eseguire la select e mi tira fuori un DataView
    Se hai un DataView, allora probabilmente avrai anche un DataTable.

    Mars95 ha scritto:


    Ho visto che si può fare così, ma non so creare l'elemento dt
    Quello è appunto un "dt", ovvero un DataTable.

    Posta il codice per consentirci di analizzarlo e segnalarti gli eventuali errori.

    Ciao!
  • Re: Selezionare alcuni dati dal DB e convertire in formato json

    Allora, io ho nella mia webform il seguente codice:


    <!DOCTYPE html>
    <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>Load data from JSON file</title>
    <script src="../Scripts/dhtmlxgantt/sources/dhtmlxgantt.js"></script>
    <link href="../Content/dhtmlxgantt/sources/dhtmlxgantt_broadway.css" rel="stylesheet" />
    <style>
    html, body {
    padding: 0px;
    margin: 0px;
    height: 100%;
    }
    </style>
    </head>
    <body>
    <div id="gantt_here" style='width:100%; height:100%;'></div>
    <script>
    gantt.config.date_format = "%Y-%m-%d %H:%i:%s";
    gantt.init("gantt_here");
    gantt.load("data.json", "json");
    </script>
    </body>

    Che mi crea la tabella Gantt caricandomi quello che c'è nel file data.json


    Devo creare un altro file che mi fa la select dei dati che mi servono e me li aggiunge al file data.json. Una volta aggiunti al file ci sarà un pulsante che mi indirizza alla pagina col grafico.

    La select di preciso è questa:

    string sql = "SELECT DESCRIZIONE, INIZIO_SP, FINE, I_TOT_GG" +
    "FROM MACRO "+
    "WHERE U_PROG='1234'"

    poi mi è stato detto che devo chiamare la funzione select della classe baseDati
    quindi dovrei fare
    DataView Macrofasi = bd.esegui_select(sql);

    E poi non so più come andare avanti per riucire a scrivere sul file json i dati che mi dovrebbero uscire con quella select
  • Re: Selezionare alcuni dati dal DB e convertire in formato json

    Alka ha scritto:


    Mars95 ha scritto:


    ho scritto la mia select e ho anche la classe BaseDati che si occupa di farmi eseguire la select e mi tira fuori un DataView
    Se hai un DataView, allora probabilmente avrai anche un DataTable.

    Mars95 ha scritto:


    Ho visto che si può fare così, ma non so creare l'elemento dt
    Quello è appunto un "dt", ovvero un DataTable.

    Posta il codice per consentirci di analizzarlo e segnalarti gli eventuali errori.

    Ciao!
    Allora s la DataView Mi viene fuori con la tabella giusta. Ora però non so come metterla in un file json, il codice che ho trovato non me lo fa

    Il codice è questo

    protected void Page_Load(object sender, EventArgs e)
    {

    string sql = "SELECT DESCRIZIONE, INIZIO_SP, FINE, I_TOT_GG " +
    "FROM MACRO "+
    "WHERE U_PROGETTO='1234'";



    DataView Macrofasi = new DataView();
    Macrofasi = bd.esegui_select(sql); //questa tabella devo salvarla nel file data,json


    string json = JsonConvert.SerializeObject(Macrofasi, Formatting.Indented); //questo non mi funziona
    File.WriteAllText(Server.MapPath("/data.json"), json);

    }
  • Re: Selezionare alcuni dati dal DB e convertire in formato json

    Mars95 ha scritto:


    DataView Macrofasi = new DataView();
    A che serve creare questo DataView, dato che non viene utilizzato?

    Mars95 ha scritto:


    Macrofasi = bd.esegui_select(sql); //questa tabella devo salvarla nel file data,json
    Che roba è sto "bd"? Se restituisce un DataView, è sbagliato, visto che è richiesto un DataTable.

    Mars95 ha scritto:


    string json = JsonConvert.SerializeObject(Macrofasi, Formatting.Indented); //questo non mi funziona
    L'espressione "non funziona" lo dice il nonno quando non riesce a fare qualcosa con lo smartphone, ma un* sviluppatore/sviluppatrice dovrebbe avere la maturità tecnica di spiegare cosa non funziona: da un errore? non compila? si comporta in modo diverso da quello atteso? e come?

    In questi termini, non è possibile fornire alcun aiuto significativo.
  • Re: Selezionare alcuni dati dal DB e convertire in formato json

    Una domanda: ma è un esercizio/compito o ti serve per un'applicazione reale?

    Nel secondo caso, se hai la query e usi SQL Server, puoi benissimo usare la clausola FOR SQL AUTO oppure FOR SQL PATH

    In questo modo il risultato proveniente da SQL è già in formato JSON, per cui ti basta leggere la risposta (è una stringa contenente il json) e salvarla su file
Devi accedere o registrarti per scrivere nel forum
5 risposte