Hi Jacob,
Any progress on this? If there're anything else we can help, please feel
free to post here.
Regards,
Steven Cheng
Microsoft Online Support
Get Secure!
www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| X-Tomcat-ID: 21370574
| References: <e$************ **@TK2MSFTNGP09 .phx.gbl>
<uS************ *@TK2MSFTNGP12. phx.gbl>
<uQ************ **@tk2msftngp13 .phx.gbl>
<Oh************ **@TK2MSFTNGP12 .phx.gbl>
<ue************ *@TK2MSFTNGP14. phx.gbl>
| MIME-Version: 1.0
| Content-Type: text/plain
| Content-Transfer-Encoding: 7bit
| From:
st*****@online. microsoft.com (Steven Cheng[MSFT])
| Organization: Microsoft
| Date: Mon, 26 Dec 2005 02:00:54 GMT
| Subject: Re: Select string building in C# and ASP.NET
| X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.aspnet
| Message-ID: <A$************ **@TK2MSFTNGXA0 2.phx.gbl>
| Newsgroups: microsoft.publi c.dotnet.framew ork.aspnet
| Lines: 161
| Path: TK2MSFTNGXA02.p hx.gbl
| Xref: TK2MSFTNGXA02.p hx.gbl
microsoft.publi c.dotnet.framew ork.aspnet:3669 96
| NNTP-Posting-Host: TOMCATIMPORT1 10.201.218.122
|
| Hi Jacob,
|
| From the code you provided, the problem seems due to the sequence you
build
| the select command string and set it to the SqlDataSource's Select
Command.
| For ASP.NET page, the "Page_Load" event always fire before other
| control(like button)'s postback event, so if you generate the new Select
| string in postback event, and only set it to SqlDataSource in
"page_load" ,
| the SqlDataSource's selectCommand is not updated correctly.... Also,
after
| you update the SqlDataSource's SelectCommand, we'd better recall the
| DataBound control( GridView , DetailsView.... )'s DataBind() method so
that
| they'll repopulate the datas from the DataSource so as to reflect the
| changes.....
|
| Regards,
|
| Steven Cheng
| Microsoft Online Support
|
| Get Secure!
www.microsoft.com/security
| (This posting is provided "AS IS", with no warranties, and confers no
| rights.)
|
|
|
|
| --------------------
| | Reply-To: "Jacob Arthur" <jacob-no@--spam-atstn.com>
| | From: "Jacob Arthur" <ja******@commu nity.nospam>
| | References: <e$************ **@TK2MSFTNGP09 .phx.gbl>
| <uS************ *@TK2MSFTNGP12. phx.gbl>
| <uQ************ **@tk2msftngp13 .phx.gbl>
| <Oh************ **@TK2MSFTNGP12 .phx.gbl>
| | Subject: Re: Select string building in C# and ASP.NET
| | Date: Fri, 23 Dec 2005 11:50:12 -0600
| | Lines: 133
| | X-Priority: 3
| | X-MSMail-Priority: Normal
| | X-Newsreader: Microsoft Outlook Express 6.00.2900.2670
| | X-RFC2646: Format=Flowed; Response
| | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2670
| | Message-ID: <ue************ *@TK2MSFTNGP14. phx.gbl>
| | Newsgroups:
|
microsoft.publi c.dotnet.framew ork.aspnet,micr osoft.public.do tnet.languages. c
| sharp
| | NNTP-Posting-Host: 015-952-822.area7.spcsd ns.net 68.242.121.62
| | Path: TK2MSFTNGXA02.p hx.gbl!TK2MSFTN GP08.phx.gbl!TK 2MSFTNGP14.phx. gbl
| | Xref: TK2MSFTNGXA02.p hx.gbl
| microsoft.publi c.dotnet.langua ges.csharp:3738 96
| microsoft.publi c.dotnet.framew ork.aspnet:3668 15
| | X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.aspnet
| |
| | In the code behind file:
| | static String docList;
| | protected void Page_Load(objec t sender, EventArgs e)
| | {
| | SqlDataSource1. SelectCommand = docList;
| | }
| | protected void Button1_Click(o bject sender, EventArgs e)
| | {
| | docList = "";
| | String currDocId = "";
| | docList = "SELECT DocIdFld, NameFld FROM doctbl WHERE ";
| |
| | System.Collecti ons.Queue docIDQ = new System.Collecti ons.Queue();
| | txtDocIDs.Text = txtDocIDs.Text + "\n";
| | for (int i = 0; i < txtDocIDs.Text. Length; i++)
| | {
| | if (Char.IsLetterO rDigit((char)tx tDocIDs.Text[i]))
| | currDocId += (char)txtDocIDs .Text[i];
| | else if (currDocId != "")
| | {
| | docIDQ.Enqueue( currDocId);
| | currDocId = "";
| | }
| | }
| | if (docIDQ.ToArray ().GetLength(0) != 0)
| | {
| | for (int i = 0; i < docIDQ.ToArray( ).GetLength(0); i++)
| | {
| | docList = docList + "DocIdFld = " +
| | ((String)docIDQ .ToArray()[i]).ToString();
| | if (i + 1 < docIDQ.ToArray( ).GetLength(0))
| | {
| | docList = docList + " OR ";
| | }
| | }
| | }
| | hdnSelect.Value = docList;
| | Label1.Text = docList;
| | }
| |
| | And in the main page file:
| | <asp:DataList ID="DataList1" runat="server"
DataSourceID="S qlDataSource1">
| | </asp:DataList><a sp:SqlDataSourc e ID="SqlDataSour ce1" runat="server"
| | ConnectionStrin g="<%$ ConnectionStrin gs:ConnectionSt ring %>"
| | ProviderName="< %$ ConnectionStrin gs:ConnectionSt ring.ProviderNa me %>" >
| | </asp:SqlDataSour ce>
| |
| | My query string is getting built fine. The string (docList) is
actually
| | stored to a label which is visible for debugging purposes. If I go out
| to
| | Query Analyzer, it brings back the rows that I would expect with the
| exact
| | select string pasted into it. For some reason though, it never
actually
| | brings any results back on the server. Do I need to add a
| | SqlDataSource1. Select() or something similar after changing the select
| | command in the code-behind file perhaps?
| |
| | Thanks,
| | Jacob
| |
| | "Ignacio Machin ( .NET/ C# MVP )" <ignacio.mach in AT dot.state.fl.us >
| wrote
| | in message news:Oh******** ******@TK2MSFTN GP12.phx.gbl...
| | > Hi,
| | >
| | > is your problem in how to get the request which brings your query, or
| how
| | > to get the data from the database?
| | >
| | > post your entire method (where you get the value of the request, and
| where
| | > you get your data from the DB)
| | >
| | >
| | > --
| | > Ignacio Machin,
| | > ignacio.machin AT dot.state.fl.us
| | > Florida Department Of Transportation
| | >
| | >
| | > "Jacob Arthur" <ja******@commu nity.nospam> wrote in message
| | > news:uQ******** ******@tk2msftn gp13.phx.gbl...
| | >> Just tried something a little different, still no luck.
| | >>
| | >> I tried putting the line
| | >> SqlDataSource1. SelectCommand = docList;
| | >>
| | >> In to the Page_Load event to make sure it was getting there and it
did
| | >> during debugging, but there is no data being pulled back. I traded
| out
| | >> the command for
| | >>
| | >> SqlDataSource1. SelectCommand = "select '1'";
| | >>
| | >> and it still doesn't bring anything back in the datalist. Am I
| missing
| | >> something here possibly?
| | >>
| | >> Jacob
| | >>
| | >> "Ignacio Machin ( .NET/ C# MVP )" <ignacio.mach in AT
dot.state.fl.us >
| | >> wrote in message news:uS******** *****@TK2MSFTNG P12.phx.gbl...
| | >>> Hi,
| | >>>
| | >>> Did you tried:
| | >>>
| | >>> SelectCommand = Request.Form("h dnSelect").ToSt ring()
| | >>>
| | >>>
| | >>>
| | >>> --
| | >>> Ignacio Machin,
| | >>> ignacio.machin AT dot.state.fl.us
| | >>> Florida Department Of Transportation
| | >>>
| | >>>
| | >>> "Jacob Arthur" <ja******@commu nity.nospam> wrote in message
| | >>> news:e$******** ******@TK2MSFTN GP09.phx.gbl...
| | >>>> How would I go about using a custom select string that is passed
| from a
| | >>>> form to the SelectCommand parameter of SqlDataSource?
| | >>>>
| | >>>> I tried:
| | >>>> SelectCommand = "<% Request.Form("h dnSelect") %>"
| | >>>>
| | >>>> but I got an error about putting <% %> tags in a literal. I tried
| | >>>> taking out the quotes (the " ") and it didn't do any good. I'm
| trying
| | >>>> to use the built in ASP.NET 2.0 DataList control, but I haven't
come
| up
| | >>>> with anything.
| | >>>>
| | >>>> Thanks,
| | >>>> Jacob
| | >>>>
| | >>>
| | >>>
| | >>
| | >>
| | >
| | >
| |
| |
| |
|
|