[菜]怎么用数据源WHERE子句的form源?
SQLdataSource里的“添加where子句”,如果选择“源”是 "Form "是不是就等于post提交呢?
窗体字段怎么填?可能举个例子吗,谢谢!
------解决方案--------------------应该是参数.
Form表示提交
可以从
Request.Form[ "key "]取得值,作为参数.
------解决方案--------------------ASP.NET 数据源控件可以接受输入参数,这样就可以在运行时将值传递给这些参数。可以使用参数提供数据检索的搜索条件,提供要在数据存储区中插入、更新或删除的值,以及提供要排序、分页和筛选的值。借助参数,使用少量自定义代码或不使用自定义代码就可筛选数据和创建主/从应用程序。
对于通过支持自动更新、插入和删除操作的数据绑定控件(如 GridView 或 FormView 控件)传递给数据源的值,也可以使用参数对其进行自定义。例如,可以使用参数对象对值进行强类型化,或从数据源中检索输出值。此外,参数化的查询可以防止 SQL 注入攻击,因此使得应用程序更加安全。
可以从各种源中获取参数值。通过 Parameter 对象,可以从 Web 服务器控件属性、Cookie、会话状态、QueryString 字段、用户配置文件属性及其他源中提供值给参数化数据操作。
参数类型
可以在 Web 应用程序中指定多种类型的参数对象。参数对象的类型确定参数值的来源。Parameter 类是所有参数对象的基类,其中包括所有参数类型通用的 Name、Type、Direction 和 DefaultValue 属性。通常使用 Parameter 基类指定数据源如何对从关联的数据绑定控件中获取的参数值(如 GridView 控件为 Update 或 Delete 操作传递的值)进行处理。
可以使用从 Parameter 类派生的参数类型来获取其他源中的值,如下表所述。
参数类型 说明
ControlParameter
将参数设置为 ASP.NET 网页中的 Control 的属性值。使用 ControlID 属性指定 Control。使用 ControlParameter 对象的 PropertyName 属性指定提供参数值的属性的名称。
从 Control 派生的某些控件将定义 ControlValuePropertyAttribute,从而确定从中检索控件值的默认属性。只要没有显式设置 PropertyName 属性,就会使用默认属性。ControlValuePropertyAttribute 应用于以下控件属性:
System.Web.UI.WebControls.Calendar.SelectedDate
System.Web.UI.WebControls.CheckBox.Checked
System.Web.UI.WebControls.DetailsView.SelectedValue
System.Web.UI.WebControls.FileUpload.FileBytes
System.Web.UI.WebControls.GridView.SelectedValue
System.Web.UI.WebControls.Label.Text
System.Web.UI.WebControls.TextBox.Text
System.Web.UI.WebControls.TreeView.SelectedValue
CookieParameter
将参数设置为 HttpCookie 对象的值。使用 CookieName 属性指定 HttpCookie 对象的名称。如果指定的 HttpCookie 对象不存在,则将使用 DefaultValue 属性的值作为参数值。
注意
仅支持单值 Cookie。
FormParameter
将参数设置为 HTML 窗体字段的值。使用 FormField 属性指定 HTML 窗体字段的名称。如果指定的 HTML 窗体字段值不存在,则将使用 DefaultValue 属性的值作为参数值。
ProfileParameter
将参数设置为当前用户配置文件 (Profile) 中的属性的值。使用 PropertyName 属性指定配置文件属性的名称。如果指定的配置文件属性不存在,则将使用 DefaultValue 属性的值作为参数值。
有关用户配置文件的信息,请参见 ASP.NET 配置文件属性。
QueryStringParameter
将参数设置为 QueryString 字段的值。使用 QueryStringField 属性指定 QueryString 字段的名称。如果指定的 QueryString 字段不存在,则将使用 DefaultValue 属性的值作为参数值。
SessionParameter
将参数设置为 Session 对象的值。使用 SessionField 属性指定 Session 对象的名称。如果指定的 Session 对象不存在,则将使用 DefaultValue 属性的值作为参数值。
将参数值强类型化
默认情况下,参数将被类型化为 Object。如果参数值是其他类型(如 DateTime 或 Int32),则可以显式创建 Parameter 对象,并将参数的 Type 属性设置为 TypeCode 值。
参数定向
默认情况下,参数为输入参数。在某些情况下,如在使用存储过程时,可能需要读取从数据源返回的值。如果是这样,可以设置 Parameter 对象的 Direction 属性,从而确保捕获数据源返回给 Web 应用程序的信息。受支持的参数定向设置为 Input、InputOutput、Output 和 ReturnValue。通常,需要处理数据源控件事件(如 Inserted 或 Updated 事件)以在完成数据操作后获取参数的返回值。
数据源控件和参数
数据源控件以不同的方式支持参数化操作。例如,通过 SqlDataSource 和 AccessDataSource 控件,可以在 SQL 语句(如 SelectCommand)中指定参数占位符。ObjectDataSource 控件使用参数确定为执行特定的数据操作而调用的适当方法签名,如 SelectMethod。有关更多信息,请参见对 SqlDataSource 控件使用参数和对 ObjectDataSource 控件使用参数。
通常,对于每个数据操作,数据源控件都包含一个参数集合。选择数据时,可以指定一个 SelectParameters 集合,更新数据项时,可以指定一个 UpdateParameters 集合,依此类推。然后将使用特定操作的参数集合内容为基础数据源提供值。插入、更新或删除数据时,数据源控件将为绑定字段创建参数,将它们与显式指定的参数集合(如果有)进行组合,然后将生成的集合传递到数据源。有关数据源控件基于绑定控件中的数据创建的参数名称和值的信息,请参见数据源控件如何为数据绑定字段创建参数。
下面的示例演示一个 SqlDataSource 控件,该控件根据 QueryString 字段中的值检索信息。
复制代码
<asp:SqlDataSource id= "Employees1 " runat= "server "
ConnectionString= " <%$ ConnectionStrings:Northwind %> "
SelectCommand= "SELECT EmployeeID, LastName, FirstName FROM Employees
WHERE EmployeeID = @empId ">
<SelectParameters>
<asp:QueryStringParameter Name= "empId " QueryStringField= "empId " />
</SelectParameters>
</asp:SqlDataSource>
下面的示例演示一个 SqlDataSource 控件,该控件根据页上的其他控件的值检索信息。
复制代码
<asp:DropDownList id= "DropDownList1 " runat= "server "
autopostback= "True ">
<asp:listitem selected> Sales Representative </asp:listitem>
<asp:listitem> Sales Manager </asp:listi