<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL Server, SQL Server Express, and SqlDataSource Control</title><link>http://forums.asp.net/54.aspx</link><description>All about SQL Server, SQL Server Express, MSDE, and the SqlDataSource control.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: using SqlDatASource programmatically - output parameters</title><link>http://forums.asp.net/thread/2708639.aspx</link><pubDate>Mon, 27 Oct 2008 17:05:02 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2708639</guid><dc:creator>stevenbey</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2708639.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=2708639</wfw:commentRss><description>&lt;p&gt;Thanks Sean, this helped me find a solution for my problem:&amp;nbsp; I have a SqlDataSource inside a Repeater ItemTemplate, which retrieves data for another, nested Repeater.&amp;nbsp; The output parameter&amp;nbsp;is used in the OnItemDataBound method of the nested Repeater.&amp;nbsp; The problem that I had was how to store the value relevant for each RepeaterItem without some complex storage/matching value&amp;nbsp;solution. As it&amp;nbsp;turned out, it was&amp;nbsp;quite simple.&lt;/p&gt;
&lt;p&gt;The object passed into the &lt;font color="#2b91af" size="2"&gt;SqlDataSourceStatusEventHandler&lt;/font&gt; is a &lt;font color="#2b91af" size="2"&gt;SqlDataSourceView&lt;/font&gt; and, unfortunately, there isn&amp;#39;t anyway of programatically accessing the original &lt;font color="#2b91af"&gt;SqlDataSource&lt;/font&gt;, however I had a guess that, if I changed the DefaultValue of the appropriate parameter in the view object, the DefaultValue of the source control would be changed.&amp;nbsp; This proved to be true.&amp;nbsp; That then meant that I could then reference the source control from inside the OnItemDataBound method and retrieve the correct output value. For example:&lt;span class="attrv"&gt;&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;// ItemDataBound EventHandler for outer Repeater&amp;nbsp;&lt;/span&gt;
&lt;span class="kwd"&gt;protected void&lt;/span&gt; rptSections_ItemDataBound(&lt;span class="kwd"&gt;object&lt;/span&gt; Sender, RepeaterItemEventArgs e)
{
	&lt;span class="kwd"&gt;if&lt;/span&gt;(e.Item.ItemType.Equals(ListItemType.Item) || e.Item.ItemType.Equals(ListItemType.AlternatingItem))
	{
		SqlDataSource ds = e.Item.FindControl(&lt;span class="st"&gt;&amp;quot;sqlCategories&amp;quot;&lt;/span&gt;) &lt;span class="kwd"&gt;as&lt;/span&gt; SqlDataSource;
		ds.SelectParameters[&lt;span class="st"&gt;&amp;quot;Section&amp;quot;&lt;/span&gt;].DefaultValue = ((DataRowView) e.Item.DataItem)[&lt;span class="st"&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;].ToString();
		ds.Selected += &lt;span class="kwd"&gt;new&lt;/span&gt; SqlDataSourceStatusEventHandler(sqlCategories_Selected);
	}
}&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;//SqlDataSource.Select EventHandler&amp;nbsp;&lt;/span&gt;
&lt;span class="kwd"&gt;void&lt;/span&gt; sqlCategories_Selected(&lt;span class="kwd"&gt;object&lt;/span&gt; sender, SqlDataSourceStatusEventArgs e)
{
	((SqlDataSourceView) sender).SelectParameters[&lt;span class="st"&gt;&amp;quot;UserGuides&amp;quot;&lt;/span&gt;].DefaultValue = e.Command.Parameters[&lt;span class="st"&gt;&amp;quot;@UserGuides&amp;quot;&lt;/span&gt;].Value.ToString();
}&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;// ItemDataBound EventHandler for inner Repeater&amp;nbsp;&lt;/span&gt;
&lt;span class="kwd"&gt;protected void&lt;/span&gt; rptCategories_ItemDataBound(&lt;span class="kwd"&gt;object&lt;/span&gt; src, RepeaterItemEventArgs e)
{
	&lt;span class="kwd"&gt;if&lt;/span&gt;(e.Item.ItemType.Equals(ListItemType.Item) || e.Item.ItemType.Equals(ListItemType.AlternatingItem))
	{
		SqlDataSource ds = ((Control) src).Parent.FindControl(&lt;span class="st"&gt;&amp;quot;sqlCategories&amp;quot;&lt;/span&gt;) &lt;span class="kwd"&gt;as&lt;/span&gt; SqlDataSource;
		DataRowView v = e.Item.DataItem &lt;span class="kwd"&gt;as&lt;/span&gt; DataRowView;
		HyperLink hl = e.Item.FindControl(&lt;span class="st"&gt;&amp;quot;hlCategory&amp;quot;&lt;/span&gt;) &lt;span class="kwd"&gt;as&lt;/span&gt; HyperLink;
		hl.NavigateUrl = &lt;span class="kwd"&gt;string&lt;/span&gt;.Format(&lt;span class="st"&gt;&amp;quot;Category.aspx?id={0}&amp;amp;ug={1}&amp;quot;&lt;/span&gt;, v[&lt;span class="st"&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;], ds.SelectParameters[&lt;span class="st"&gt;&amp;quot;UserGuides&amp;quot;&lt;/span&gt;].DefaultValue);
		hl.Text = v[&lt;span class="st"&gt;&amp;quot;Category&amp;quot;&lt;/span&gt;] &lt;span class="kwd"&gt;as string&lt;/span&gt;;
	}
}
&lt;/pre&gt;&lt;/span&gt;</description></item><item><title>Re: using SqlDatASource programmatically - output parameters</title><link>http://forums.asp.net/thread/2222210.aspx</link><pubDate>Mon, 10 Mar 2008 07:08:34 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2222210</guid><dc:creator>Amit M</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2222210.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=2222210</wfw:commentRss><description>&lt;p&gt;I was trying the same thing and come across a very wired conclusion. I can define an output parameter in my aspx page too as it is said in thread that one cant. It works perfectly. When its type is &amp;quot;String&amp;quot;, you must provied a size for it. Or it will give a run time error.&lt;/p&gt;
&lt;p&gt;The wired thing is, this size cant be greater than 4000. else you will return a null value from your stored procedure. I am using SQL 2005 which allow me to define string with size of 8000. But in aspx you can only give it upto 4000. It&amp;#39;s wired? isnt it?&lt;/p&gt;
&lt;p&gt;any ways. This is what i&amp;#39;d done:&lt;/p&gt;&lt;font color="#0000ff" size="3"&gt;
&lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="3"&gt;UpdateParameters&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="3"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;:&lt;/font&gt;&lt;font color="#800000" size="3"&gt;Parameter&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;Name&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=&amp;quot;original_ZoneID&amp;quot;&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;Type&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=&amp;quot;Int32&amp;quot;&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;/&amp;gt;&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="3"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;:&lt;/font&gt;&lt;font color="#800000" size="3"&gt;Parameter&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;Name&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=&amp;quot;ZoneCode&amp;quot;&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;Type&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=&amp;quot;String&amp;quot;&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;Size&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=&amp;quot;3&amp;quot;/&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font color="#0000ff" size="3"&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="3"&gt;asp&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;:&lt;/font&gt;&lt;font color="#800000" size="3"&gt;Parameter&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;Name&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=&amp;quot;MSG&amp;quot;&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;Type&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=&amp;quot;string&amp;quot;&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;Direction&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=&amp;quot;Output&amp;quot;&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="3"&gt;Size&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;=&amp;quot;4000&amp;quot;&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;/&amp;gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000" size="3"&gt;UpdateParameters&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt; 
&lt;p&gt;And&amp;nbsp;on my Code behind(yes..it is in VB.Net)&lt;/p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&lt;font color="#0000ff" size="3"&gt;Protected&lt;/font&gt;&lt;font color="#000000" size="3"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;Sub&lt;/font&gt;&lt;font color="#000000" size="3"&gt; SqlDataSource1_Updated(&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;ByVal&lt;/font&gt;&lt;font color="#000000" size="3"&gt; sender &lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;As&lt;/font&gt;&lt;font color="#000000" size="3"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;Object&lt;/font&gt;&lt;font color="#000000" size="3"&gt;, &lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;ByVal&lt;/font&gt;&lt;font color="#000000" size="3"&gt; e &lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;As&lt;/font&gt;&lt;font color="#000000" size="3"&gt; System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) &lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;Handles&lt;/font&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt; SqlDataSource1.Updated&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt; 
&lt;p&gt;Dim&amp;nbsp;Msg as String&amp;nbsp;&lt;/p&gt;msg = e.Command.Parameters(&lt;/font&gt;&lt;font color="#800000" size="3"&gt;&amp;quot;@Msg&amp;quot;&lt;/font&gt;&lt;font size="3"&gt;).Value&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;End&lt;/font&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;Sub&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="3"&gt;&lt;/font&gt;&amp;nbsp;&lt;/font&gt;&amp;nbsp;and my stored Procedure is:&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;Alter&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;PROCEDURE&lt;/font&gt;&lt;font size="2"&gt; uspUpdateZoneMst&lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;@original_ZoneID &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;INT&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;@ZoneCode &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;VARCHAR&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;20&lt;/font&gt;&lt;font color="#808080" size="2"&gt;),&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;@ZoneName &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;VARCHAR&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;250&lt;/font&gt;&lt;font color="#808080" size="2"&gt;),&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;@SF &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;VARCHAR&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;20&lt;/font&gt;&lt;font color="#808080" size="2"&gt;),&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;@UBy &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;INT&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;@Msg &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;varchar&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;100&lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;output&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;AS&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; 
&lt;p&gt;Begin&lt;/p&gt;
&lt;p&gt;Begin&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Try&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;BEGIN&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Tran&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;UPDATE&lt;/font&gt;&lt;font size="2"&gt; ZoneMst &lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;SET&lt;/font&gt;&lt;font size="2"&gt; ZoneCode&lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;Ltrim&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;@ZoneCode&lt;/font&gt;&lt;font color="#808080" size="2"&gt;),&lt;/font&gt;&lt;font size="2"&gt;ZoneName&lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;Ltrim&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;@ZoneName&lt;/font&gt;&lt;font color="#808080" size="2"&gt;),&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;SF&lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt;@SF&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt;UpdatedBy&lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt;@UBy&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt;Updatedon&lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;GetDate&lt;/font&gt;&lt;font color="#808080" size="2"&gt;()&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;WHERE&lt;/font&gt;&lt;font size="2"&gt; ZoneID&lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt;@original_ZoneID&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;COMMIT&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Set&lt;/font&gt;&lt;font size="2"&gt; @Msg &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;Record Updated Successfully&amp;#39;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;try&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Begin&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Catch&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;some code deleted&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: using SqlDatASource programmatically - output parameters</title><link>http://forums.asp.net/thread/1920439.aspx</link><pubDate>Fri, 21 Sep 2007 13:03:36 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1920439</guid><dc:creator>degt</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1920439.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=1920439</wfw:commentRss><description>&lt;p&gt;Thanks for sharing this as I was having the same problem. I guess it is one of those things the team overlooked. I tried by adding the parameters to the InsertParameter collection of the source in design mode but when I tried to retrieve them in the Inserted handler i got an exception saying that parameter was not in the collection.&lt;/p&gt;&lt;p&gt;I then used your approach to programmatically add the Output and ReturnValue parameters to the collection during the Inserting event and now I am able to retrieve these values on the Inserted event.&lt;/p&gt;&lt;p&gt;The problem is - and I figure that is a framework bug- you can only retrieve those. The parameters that are declared in the collection at design time (can be seen in the control markup on the ASPX/ASCX) are &lt;b&gt;not &lt;/b&gt;accessible on the Inserted event using this method. So basically now I can access the Return and Output I added programmatically during Insert but not those that were already declared. Very weird.&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: using SqlDatASource programmatically - output parameters</title><link>http://forums.asp.net/thread/1916073.aspx</link><pubDate>Wed, 19 Sep 2007 10:46:33 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1916073</guid><dc:creator>raj2006</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1916073.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=1916073</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am having a similar issue but I have to read the data from the sqldatabase by a PK field and to display on&amp;nbsp;an asp.net form which I could possibily achieve by sqldatasource and detailview control.&amp;nbsp; I could also use your coding to insert data to another table once user clicked a button.&amp;nbsp; But the issue is to read the data from the detailview. I am having difficulty to read the data from the sqldatasource / detailview.&amp;nbsp; Appreciate if you could provide the coding to read directly from sqldatabase and display it in a text box.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;thanks&lt;/p&gt;</description></item><item><title>Re: using SqlDatASource programmatically - output parameters</title><link>http://forums.asp.net/thread/1803192.aspx</link><pubDate>Fri, 13 Jul 2007 21:41:24 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1803192</guid><dc:creator>jmsween</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1803192.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=1803192</wfw:commentRss><description>&lt;p&gt;awesome.&amp;nbsp; thanks for posting this.&lt;/p&gt;</description></item><item><title>Re: using SqlDatASource programmatically - output parameters</title><link>http://forums.asp.net/thread/1613790.aspx</link><pubDate>Fri, 09 Mar 2007 19:02:32 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1613790</guid><dc:creator>CSharpSean</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1613790.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=1613790</wfw:commentRss><description>&lt;p&gt;I finally figured this out, thanks to the help of a co-worker. . .. and figured I would post it here, since this is the first thread I found relating to the subject.... (sqldsProjects is my sqldatasource)&lt;/p&gt;&lt;p&gt;Im working with my sqldatasource in the code behind. On my projects.aspx page, I have a gridview with the list of products. It has a add project area, which it only adds a project title, then it redirects to the projectdetails.aspx page to complete the rest of the information and then it can be updated.&lt;br /&gt;&lt;/p&gt;&amp;nbsp;&lt;pre class="coloredcode"&gt;     &lt;span class="cmt"&gt;//grab the output parameter value and assign it to a variable in my page class.[int idProject;]&lt;/span&gt;
    &lt;span class="kwd"&gt;protected void&lt;/span&gt; sqldsProjects_Inserted(&lt;span class="kwd"&gt;object&lt;/span&gt; sender, SqlDataSourceStatusEventArgs e)
    {
        idProject = (&lt;span class="kwd"&gt;int&lt;/span&gt;)((IDbDataParameter)e.Command.Parameters[&lt;span class="st"&gt;"idProject"&lt;/span&gt;]).Value;
    }

    &lt;span class="cmt"&gt;// You insert the output parameter in the Inserting event&lt;/span&gt;
    &lt;span class="kwd"&gt;protected void&lt;/span&gt; sqldsProjects_Inserting(&lt;span class="kwd"&gt;object&lt;/span&gt; sender, SqlDataSourceCommandEventArgs e)
    {
        System.Data.SqlClient.SqlParameter param = &lt;span class="kwd"&gt;new&lt;/span&gt; System.Data.SqlClient.SqlParameter();
        param.DbType = DbType.Int32;
        param.Direction = ParameterDirection.Output;
        param.ParameterName = &lt;span class="st"&gt;"idProject"&lt;/span&gt;;

        e.Command.Parameters.Add(param);
    }&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;A button click event triggers a save - -&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;pre class="coloredcode"&gt; &lt;span class="kwd"&gt;protected void&lt;/span&gt; btnAddProject_OnClick(&lt;span class="kwd"&gt;object&lt;/span&gt; sender, EventArgs e)
    {
        &lt;span class="kwd"&gt;if&lt;/span&gt; (!String.IsNullOrEmpty(txtProject.Text.Trim()))
        {
            sqldsProjects.InsertCommand = &lt;span class="st"&gt;"InsertProject"&lt;/span&gt;;
            sqldsProjects.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;

            sqldsProjects.InsertParameters.Add(&lt;span class="st"&gt;"fldActive"&lt;/span&gt;, TypeCode.Boolean, &lt;span class="st"&gt;"False"&lt;/span&gt;);
            sqldsProjects.InsertParameters.Add(&lt;span class="st"&gt;"fldFeatured"&lt;/span&gt;, TypeCode.Boolean, &lt;span class="st"&gt;"False"&lt;/span&gt;);
            sqldsProjects.InsertParameters.Add(&lt;span class="st"&gt;"fldName"&lt;/span&gt;, TypeCode.String, txtProject.Text.Trim());
            sqldsProjects.InsertParameters.Add(&lt;span class="st"&gt;"fldLocation"&lt;/span&gt;, TypeCode.String, &lt;span class="kwd"&gt;string&lt;/span&gt;.Empty);
            sqldsProjects.InsertParameters.Add(&lt;span class="st"&gt;"fldOwner"&lt;/span&gt;, TypeCode.String, &lt;span class="kwd"&gt;string&lt;/span&gt;.Empty);
            sqldsProjects.InsertParameters.Add(&lt;span class="st"&gt;"fldCmpDate"&lt;/span&gt;, TypeCode.DateTime, DBNull.Value.ToString());
            sqldsProjects.InsertParameters.Add(&lt;span class="st"&gt;"fldDesc"&lt;/span&gt;, TypeCode.String, &lt;span class="kwd"&gt;string&lt;/span&gt;.Empty);
            sqldsProjects.InsertParameters.Add(&lt;span class="st"&gt;"fldStatus"&lt;/span&gt;, TypeCode.String, &lt;span class="st"&gt;"0"&lt;/span&gt;);

            sqldsProjects.Insert();

            Response.Redirect(&lt;span class="st"&gt;"projectdetails.aspx?id="&lt;/span&gt; + idProject.ToString() );
        }
    } &lt;/pre&gt;&amp;nbsp;&amp;nbsp;&lt;p&gt;&lt;br /&gt;&amp;nbsp;--Stored procedure&lt;/p&gt;&lt;p&gt;ALTER PROCEDURE dbo.InsertProject&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @fldActive bit,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @fldFeatured bit,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @fldName varchar(50),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @fldLocation varchar(50),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @fldOwner varchar(30),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @fldCmpDate DateTime,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @fldDesc text,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @fldStatus varchar(20),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @idProject int output&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;AS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET NOCOUNT ON --stops the server from indicating the number of rows affected&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO tblProjects&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (fldActive, fldFeatured, fldName, fldLocation,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;fldOwner, fldCmpDate, fldDesc, fldStatus)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUES&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (@fldActive, @fldFeatured, @fldName, @fldLocation,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;@fldOwner, @fldCmpDate, @fldDesc, @fldStatus)&lt;br /&gt;&lt;br /&gt;SET @idProject = Scope_Identity() &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hope this helps anyone else looking for this info. I spent too much time on it... lol&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: using SqlDatASource programmatically - output parameters</title><link>http://forums.asp.net/thread/1285808.aspx</link><pubDate>Mon, 15 May 2006 09:45:31 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1285808</guid><dc:creator>Iori_Jay</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1285808.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=1285808</wfw:commentRss><description>It seems that the SqlParameter can't be added to SqlDataSource.InsertCommand, &amp;nbsp;I'm not sure. But why not use SqlCommand to call the stored procedure? It works fine in my testing</description></item><item><title>Re: using SqlDatASource programmatically - output parameters</title><link>http://forums.asp.net/thread/1285020.aspx</link><pubDate>Sat, 13 May 2006 16:09:23 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1285020</guid><dc:creator>jstranger</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1285020.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=1285020</wfw:commentRss><description>&lt;p&gt;&lt;font face=Arial size=2&gt;After further investigation it seems that the only way to pick up the&lt;/font&gt; &lt;font face=Arial size=2&gt;output parameters is to add an Inserted event handler in my DAL and use this to save the parameter value from&amp;nbsp;SqlDataSourceStatusEventArgs.Command.Parameters into a local variable in my DAL which can then be returned and referenced in a webpage code-behind event handler for my ObjectDataSource Inserted event. Just seems a bit long-winded (and possibly not thread safe). Why couldn't the output parameter value be put in the SqlDataSource InsertParameters collection?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Arial size=2&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face=Arial size=2&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>using SqlDatASource programmatically - output parameters</title><link>http://forums.asp.net/thread/1284900.aspx</link><pubDate>Sat, 13 May 2006 06:48:17 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1284900</guid><dc:creator>jstranger</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1284900.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=1284900</wfw:commentRss><description>&lt;p&gt;&lt;font face=Arial size=2&gt;I am using SqlDataSource programmatically in my data access layer - mainly for convenience but it does generally work fine with no obvious performance issues.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Arial size=2&gt;The problem I have is with getting back an output parameter. I have an insert-type stored procedure (in Sql Server 2005) operating on a table with an&amp;nbsp;identity&lt;/font&gt;&lt;font face=Arial size=2&gt; column as the primary key:&lt;/font&gt;&lt;/p&gt;&lt;font face=Arial size=2&gt;&lt;font color=#0000ff size=2&gt;
&lt;p&gt;ALTER&lt;/p&gt;&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;PROCEDURE&lt;/font&gt;&lt;font size=2&gt; [dbo]&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;[InsertAlbum]&lt;br /&gt;&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;@ArtistID &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; @Title &lt;/font&gt;&lt;font color=#0000ff size=2&gt;nvarchar&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;70&lt;/font&gt;&lt;font color=#808080 size=2&gt;),&lt;/font&gt;&lt;font size=2&gt;&amp;nbsp;&lt;/font&gt;&lt;font size=2&gt;@NewID &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;OUTPUT&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;AS&lt;br /&gt;DECLARE&lt;/font&gt;&lt;font size=2&gt; @err &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;br /&gt;INSERT&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;INTO&lt;/font&gt;&lt;font size=2&gt; dbo&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ALBUMS &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;ARTISTID&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; TITLE&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;VALUES&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;@ArtistID&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; @Title)&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SELECT&lt;/font&gt;&lt;font size=2&gt; @err &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;@@error&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;IF&lt;/font&gt;&lt;font size=2&gt; @err &lt;/font&gt;&lt;font color=#808080 size=2&gt;&amp;lt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt; 0 &lt;/font&gt;&lt;font color=#0000ff size=2&gt;RETURN&lt;/font&gt;&lt;font size=2&gt; @err&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SET&lt;/font&gt;&lt;font size=2&gt; @NewID &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;SCOPE_IDENTITY&lt;/font&gt;&lt;font color=#808080 size=2&gt;()&lt;/font&gt;
&lt;p&gt;&lt;font color=#808080 size=2&gt;This works fine when run from Sql Server Management Studio and @NewID has the correct value.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color=#808080 size=2&gt;My data access code is roughly as follows:&lt;font size=2&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;dsrc = &lt;/p&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;New&lt;/font&gt;&lt;font size=2&gt; SqlDataSource()&lt;br /&gt;dsrc.ConnectionString = ConnectionString&lt;br /&gt;dsrc.InsertCommand = &lt;/font&gt;&lt;font color=#800000 size=2&gt;"InsertAlbum"&lt;br /&gt;&lt;/font&gt;&lt;font size=2&gt;dsrc.InsertCommandType = SqlDataSourceCommandType.StoredProcedure&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;Dim&lt;/font&gt;&lt;font size=2&gt; parms &lt;/font&gt;&lt;font color=#0000ff size=2&gt;As&lt;/font&gt;&lt;font size=2&gt; ParameterCollection = dsrc.InsertParameters&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;Dim&lt;/font&gt;&lt;font size=2&gt; newid &lt;/font&gt;&lt;font color=#0000ff size=2&gt;As&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;Integer&lt;br /&gt;&lt;/font&gt;&lt;font size=2&gt;AddParameter(parms, &lt;/font&gt;&lt;font color=#800000 size=2&gt;"ArtistID"&lt;/font&gt;&lt;font size=2&gt;, TypeCode.Int32, ParameterDirection.Input, 0, album.ArtistID)&lt;br /&gt;AddParameter(parms, &lt;/font&gt;&lt;font color=#800000 size=2&gt;"Title"&lt;/font&gt;&lt;font size=2&gt;, TypeCode.String, ParameterDirection.Input, 0, album.Title)&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;Dim&lt;/font&gt;&lt;font size=2&gt; p &lt;/font&gt;&lt;font color=#0000ff size=2&gt;As&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;New&lt;/font&gt;&lt;font size=2&gt; Parameter(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"NewID"&lt;/font&gt;&lt;font size=2&gt;, TypeCode.Int32)&lt;br /&gt;p.Direction = ParameterDirection.Output&lt;br /&gt;parms.Add(p)&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;Try&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim&lt;/font&gt;&lt;font size=2&gt; rv &lt;/font&gt;&lt;font color=#0000ff size=2&gt;As&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;Integer&lt;/font&gt;&lt;font size=2&gt; = dsrc.Insert()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;newid = parms("NewID")&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&lt;/font&gt;&lt;font size=2&gt; newid&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;Catch&lt;/font&gt;&lt;font size=2&gt; ex &lt;/font&gt;&lt;font color=#0000ff size=2&gt;As&lt;/font&gt;&lt;font size=2&gt; Exception&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;Return&lt;/font&gt;&lt;font size=2&gt; -1&lt;br /&gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;End&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;Try&lt;/font&gt;
&lt;p&gt;&lt;font color=#808080 size=2&gt;The row is inserted into the database, but however I try to define and add the NewID parameter it never has a value.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color=#808080 size=2&gt;Has anyone tried to do this and can tell me what I am doing wrong?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color=#808080 size=2&gt;Jon&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item></channel></rss>