In the code behind file:
static String docList;
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.SelectCommand = docList;
}
protected void Button1_Click(object sender, EventArgs e)
{
docList = "";
String currDocId = "";
docList = "SELECT DocIdFld, NameFld FROM doctbl WHERE ";
System.Collections.Queue docIDQ = new System.Collections.Queue();
txtDocIDs.Text = txtDocIDs.Text + "\n";
for (int i = 0; i < txtDocIDs.Text.Length; i++)
{
if (Char.IsLetterOrDigit((char)txtDocIDs.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="SqlDataSource1">
</asp:DataList><asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" >
</asp:SqlDataSource>
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.machin AT dot.state.fl.us> wrote
in message news:Oh**************@TK2MSFTNGP12.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******@community.nospam> wrote in message
news:uQ**************@tk2msftngp13.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.machin AT dot.state.fl.us>
wrote in message news:uS*************@TK2MSFTNGP12.phx.gbl... Hi,
Did you tried:
SelectCommand = Request.Form("hdnSelect").ToString()
--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation
"Jacob Arthur" <ja******@community.nospam> wrote in message
news:e$**************@TK2MSFTNGP09.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("hdnSelect") %>"
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