我有一个 SQL 查询,但它只会知道页面加载中的电影类型。这将连接到数据列表。
我的查询是
select * from movies where movieType = @type
有没有办法在运行时将参数传递给 sql 数据源?
谢谢
进行 SQL 调用时,您需要将参数添加到 SqlCommand。
myCommand.Parameters.AddWithValue("@type", type);
在此示例中,您从 .Net 传入的变量是“类型”
这篇MSDN 文章应该可以帮助您了解参数传递。
如果您询问SqlDataSource 控件,是的,您可以使用 SQL 查询和使用参数的语句。
例如:
var source = new SqlDataSource(myConnectionString,
"SELECT * FROM TableName WHERE ColName = @M);
source.SelectParameters.Add("@M", DbType.Int32, ddl.SelectedValue);
MSDN 有关于这个主题的好文章。
这可以通过标记或代码隐藏中的SelectParameters来完成
<asp:SqlDataSource
id="SqlDataSource1"
runat="server"
DataSourceMode="DataReader"
ConnectionString="<%$ ConnectionStrings:MyConnection %>"
SelectCommand="select * from movies where movieType = @type">
<SelectParameters>
<asp:ControlParameter name="type" ControlID="MyDropdownList" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>