asp.net sqldatasource detailview:如何设置正确的select语句

时间:2009-02-27 02:57:57

标签: asp.net sqldatasource detailsview

我的页面加载事件看起来像这样....

    SqlDataSource1.ConnectionString = Connection.ConnectionStr;

    SqlDataSource1.SelectCommand = "select firstname,lastname from customer";

    SqlDataSource1.InsertCommand = "CustRec_iu";
    SqlDataSource1.InsertCommandType = SqlDataSourceCommandType.StoredProcedure; 

    SqlDataSource1.InsertParameters.Clear();

    SqlDataSource1.InsertParameters.Add(new Parameter("firstname", DbType.String));
    SqlDataSource1.InsertParameters.Add(new Parameter("LastName", DbType.String));
    SqlDataSource1.InsertParameters.Add(new Parameter("Active",DbType.Int16,"1"));

detailview控件设置如下所示....

      <asp:DetailsView ID="dvCustDetails1" runat="server" AutoGenerateRows="False" 
            DataSourceID="SqlDataSource1" Height="149px" Width="469px"
            OnItemInserted=dvCustDetails1_ItemInserted

            >
            <Fields>
                <asp:BoundField DataField="FirstName" HeaderText="First Name" 
                    SortExpression="FirstName" />
                <asp:BoundField DataField="LastName" HeaderText="Last Name" 
                    SortExpression="LastName" />
                <asp:CommandField ButtonType="Button" ShowInsertButton="True" />
            </Fields>
        </asp:DetailsView>

在插入功能完成后,我想从客户表中捕获custid,这是一个标识列,一些如何提取它并选择带有该记录的表

从客户中选择*,其中custid = @custid。

然后在插入后控件渲染后,我希望它基于上面的select语句显示新插入的记录。

另外,我希望detailview显示更新按钮,以便我可以更新记录。

我将如何实现这一目标?

我在谷歌搜索甚至打印书籍中找到的文档非常少。

1 个答案:

答案 0 :(得分:0)

您希望将sqldatasource的OnSelected事件与SQL调用中的返回参数一起使用。

将其添加到sqldatasource

OnSelected ="sqlds_Selected"

并实现类似:

protected void sqlds_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
    //get the command object from the arg and
    //then you can get to the parameter value

    e.Command.Parameters["@CustomerID"].Value

   //then set this to your detailsview key

}