Еще на стадии новичка и есть проект на работе. Я искал google и читал, пока у моего глаза не кровоточит. Должно быть что-то маленькое, что я пропускаю. Мне нужно передать переменную dNum в SQL-запрос. Если я не поставлю «SelectParameters», это скажет мне, что мне нужно объявить скалярную переменную, что имеет смысл. Я не могу заставить его забрать переменную .. значение по умолчанию действительно работает.Использование переменной ASP.net в SQL-запросе
Любые указатели? Заранее спасибо.
<asp:TextBox ID="dNumber" runat="server"></asp:TextBox><asp:Button ID="Button1" runat="server" Text="Go!" OnClick="runQuery" />
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:Door_Clearance %>"
SelectCommand="SELECT a.Name, c.Name, c.Description
FROM [SWHSystem].[dbo].[Door] AS a
JOIN [SWHSystem].[dbo].[ClearanceItem] AS b ON a.ObjectID=b.DoorID
JOIN [SWHSystem].[dbo].[Clearance] AS c ON b.ClearanceID=c.ObjectID
WHERE a.Name LIKE @dNum1">
<SelectParameters> <asp:SessionParameter Name="dNum1"
SessionField="dNum"
DefaultValue='%1500%'/></SelectParameters>
</asp:SqlDataSource>
В файле .cs ..
protected void runQuery(object sender, EventArgs e)
{
string dNum = "'%" + dNumber.Text + "%'";
//SqlDataSource1.SelectParameters.Add("dNum1", dNum);
SqlDataSource1.SelectParameters["dNum1"].DefaultValue = "dNum";
}
Попробуйте вместо этого использовать «ControlParameter» и привяжите его к элементу управления 'dNumber'. В настоящее время вы используете 'SessionParameter', который попытается извлечь значение из' Session'. – user1429080
Пробовал несколько вариантов и никогда не мог заставить его работать. В конце концов, переместите его в код .cs, и он работает наконец. –