Frage

Ich habe eine ASP.NET Web-Seite, die einen SQL Server Anruf von der Client-Seite in einem Skript sectipn meiner aspx-Datei zu machen braucht. Ich bin eine gespeicherte Prozedur aufrufen, die eine Parm nimmt. Diese sp arbeitet in SQL Server Management Studio Rückkehr Aufzeichnungen fein wie erwartet. Wenn ich versuche, einen Datensatz aus einem Aufruf zu füllen, um das sp wird die ds mit Nullsätzen gefüllt. Gibt es etwas über diesen Anruf von der Client-Seite zu machen, die ich fehle. Hier ist mein Code. Ich bin Codierung schwierig, die Parm zu Testzwecken. PS - Ich habe dies in einem Versuch zu fangen und bekommen keine Fehler nur eine leere dataset.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);
War es hilfreich?

Lösung

Ich habe den Code versucht, und es war in Ordnung. Auf, was falsch sein könnte, ist dies: Wenn Sie versuchen, Gridview zu binden, wie: gridView.DataSource= ds; Sie wird nichts sehen. Ich habe Ihr Beispiel versucht, aber statt vorherigen Code, ich habe binden Gridview wie folgt aus: gridView.DataSource = ds.Tables[0]; und ich sehe Ihre Unterlagen. Spaltenname: assigned_dt, mit Werten wie: 2005.07.05, 2005.05.02. Ist das, was Sie erwarten. Grüße

Andere Tipps

Nicht sicher, was Sie meinen: ASP.Net C # -Code immer läuft auf dem Web-Server, NIE auf der Client-Seite. Die beiden einfach nicht mischen.


Update basierend auf Ihren Kommentar:

Wie erklären Sie Ihre „Script“? Es gibt zwei Möglichkeiten, es zu tun:

  • Ein einzelne <script runat="server"> //code here </script> Element. Dies kann eine der Seite Ereignisse behandeln, einschließlich Laden der Seite.

  • Inline-Script-Elemente / Bienenstiche. <% %>-Tags in Ihrem Markup setzt. Es ist ein verbreiteter misconsception, dass Code in den Tags auf Seite Last läuft. Wie Sie aus meiner Verwendung von hte Wort „Missverständnis“ gesammelt haben, ist dies falsch . Code in diesem Tags erst viel später in dem Seitenlebenszyklus (PreRender, IIRC).

  • läuft nicht

Beachten Sie, dass der 2. Punkt besonders, da dieser Code ausgeführt wird nach die Datenbindung Phase bereits abgeschlossen ist. Wenn Sie diese Datenmenge als Datenquelle für die Steuerung verwenden möchten, müssen Sie DataBind () manuell.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top