Domanda

Ho una pagina Web ASP.NET che deve effettuare una chiamata di SQL Server dal lato client in uno script sectipn del mio file aspx. Chiamo un proc memorizzato che richiede un parm. Questo sp funziona bene in SQL Server Management Studio restituendo i record come previsto. Quando provo a riempire un set di dati da una chiamata a questo SP, il DS viene riempito con zero record. C'è qualcosa nel fare questa chiamata dal lato client che mi manca. Ecco il mio codice Sto programmando il codice per scopi di test. PS: ho questo in un tentativo di cattura e non ottengo errori solo un set di dati vuoto.Thnx.

            string strAssignedTo = "Dwight Shoemaker";



            System.Data.DataSet ds = new System.Data.DataSet();
            System.Data.SqlClient.SqlConnection sqlcon = new System.Data.SqlClient.SqlConnection("Data Source=sql394.mysite4now.com;Initial Catalog=ULS_db1;User ID=uls2008;Password=uls2008");
            System.Data.SqlClient.SqlCommand comand = new System.Data.SqlClient.SqlCommand();
            comand.Connection = sqlcon;
            comand.CommandText = "GetAssignedToReport";
            comand.CommandType = System.Data.CommandType.StoredProcedure;

            comand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@assignedTo", System.Data.SqlDbType.VarChar, 50));
            comand.Parameters["@assignedTo"].Value = strAssignedTo;

            System.Data.SqlClient.SqlDataAdapter sqladp = new System.Data.SqlClient.SqlDataAdapter(comand);

            sqlcon.Open();
            sqladp.Fill(ds);
È stato utile?

Soluzione

Ho provato il tuo codice ed è stato ok. La cosa che potrebbe essere sbagliata è questa: Se si tenta di associare gridView come: gridView.DataSource= ds; non vedrai nulla. Ho provato il tuo esempio ma invece del codice precedente, ho associato gridView in questo modo: gridView.DataSource = ds.Tables[0]; e vedo i tuoi record. Nome della colonna: assegnato_dt, con valori come: 7/5/2005, 5/2/2005. È questo quello che ti aspetti. Saluti

Altri suggerimenti

Non so cosa intendi: ASP.Net codice C # sempre viene eseguito sul server Web, MAI sul lato client. I due non si mescolano.


Aggiornamento basato sul tuo commento:

Come stai dichiarando il tuo " script " ;? Esistono due modi per farlo:

  • Un singolo elemento <script runat="server"> //code here </script>. Questo può gestire qualsiasi evento della pagina, incluso il caricamento della pagina.

  • Inline script script / bee-stings. <% %> tag intervallati nel markup. È un'idea sbagliata comune che il codice in quei tag venga eseguito al caricamento della pagina. Come potresti aver appreso dal mio uso della parola hte & Quot; malinteso & Quot ;, questo è sbagliato . Il codice in quei tag non verrà eseguito molto più tardi nel ciclo di vita della pagina (PreRender, IIRC).

Si noti che il secondo elemento in particolare, poiché questo codice esegue dopo la fase di associazione dei dati è già terminata. Se si desidera utilizzare tale set di dati come origine dati per il controllo, è necessario DataBind () manualmente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top