Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Script non chiaro

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336

    Script non chiaro

    Salve.
    Ho trovato uno script che mi consente, data una tabella prodotti di NorthWind, di estrarla e poi filtrare una determinata riga in ciu IdCategoria=2 e IDProdotto=2. Questo è lo script:


    <%@ Page Language="C#" %>
    <%@ import Namespace="System.Data" %>
    <%@ import Namespace="System.Data.OleDb" %>
    <script runat="server">

    void Page_Load () {

    string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:/ASPCODE/Northwind.mdb";
    OleDbConnection cnn = new OleDbConnection(strCnn) ;
    cnn.Open();
    DataSet ds = new DataSet();
    OleDbDataAdapter da = new OleDbDataAdapter();
    OleDbCommand cmd = new OleDbCommand("SELECT * from prodotti", cnn);
    da.SelectCommand = cmd;
    da.Fill(ds, "articoli");
    cnn.Close();

    DataView dv = new DataView(ds.Tables["articoli"], "", "IDCategoria, IDFornitore", DataViewRowState.CurrentRows);

    int rowIndex = dv.Find (new object[] {"2","2"} );

    Response.Write (rowIndex);

    DataGrid1.DataSource = dv;
    DataGrid1.DataBind();
    }
    </script>
    <html>
    <head>
    </head>
    <body>
    <aspataGrid id="DataGrid1" runat="server"></aspataGrid>
    </body>
    </html>



    Le righe che ci interessano sono:

    DataView dv = new DataView(ds.Tables["articoli"], "", "IDCategoria, IDFornitore", DataViewRowState.CurrentRows );

    int rowIndex = dv.Find (new object[] {"2","2"} );

    Come è possibile osservare i valori da ricercare sono passati sotto forma di array.

    Quello che non riesco a comprendere è dove viene specificato che il criterio di ricerca è IDCategoria=2 e IdFornitore=2. Non vi è una riga in cui viene specificato chiaramente questo. Mi sapreste aiutare.

    Vi rinngrazio in anticipo.

  2. #2
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    eccola

    int rowIndex = dv.Find (new object[] {"2","2"} );

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336
    Capisco la tua risposta, però la mia difficoltà è proprio nelle due righe:

    DataView dv = new DataView(ds.Tables["articoli"], "", "IDCategoria, IDFornitore", DataViewRowState.CurrentRows );

    int rowIndex = dv.Find (new object[] {"2","2"} );


    Non riesco a comprendere come vengono passati i due valori da ricercare. Cioè non è specificato IdCategoria=2 e IdFornitore=2

  4. #4
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    basta dare un occhiata alla guida.

    preso da msde

    il primo metodo

    Inizializza una nuova istanza della classe DataView con l'oggetto DataTable, le proprietà RowFilter e Sort e l'oggetto DataViewRowState specificati.

    il secondo


    Metodo DataView.Find (Object)
    Trova una riga nell'oggetto DataView in base al valore di chiave di ordinamento specificato.

    ovvero

    Private Sub FindValueInDataView(t As DataTable)
    Dim dv As DataView
    Dim i As Integer
    dv = New DataView(t)
    dv.Sort = "CustomerID"
    ' Find the customer named "DUMON" in the primary key column
    i = dv.Find("DUMON")
    Console.WriteLine(dv(i))
    End Sub

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336
    Ti ringrazio molto della tua spiegazione. In visual basic mi è più chiaro.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.