C# 如何使用gridwiew_row命令返回的值搜索数据库?

C# 如何使用gridwiew_row命令返回的值搜索数据库?,c#,asp.net,gridview,rowcommand,C#,Asp.net,Gridview,Rowcommand,我试图使用gridview中的一个按钮将ID(所选行的GUID)传递到我的数据库,在那里我将其与数据库中的GUID进行比较,然后将其传递到我的“Show”函数,并从数据库中获取帖子 现在我不知道如何将“visadabok”对象从我的按钮转到我的“Show” 受保护的无效页面加载(对象发送方,事件参数e) { 如果(第IsPostBack页) { } 其他的 { //Text=Request[“ID”]; 如果(!string.IsNullOrEmpty(TextBox68.Text)) { 显示

我试图使用gridview中的一个按钮将ID(所选行的GUID)传递到我的数据库,在那里我将其与数据库中的GUID进行比较,然后将其传递到我的“Show”函数,并从数据库中获取帖子

现在我不知道如何将“visadabok”对象从我的按钮转到我的“Show”

受保护的无效页面加载(对象发送方,事件参数e)
{
如果(第IsPostBack页)
{
}
其他的
{
//Text=Request[“ID”];
如果(!string.IsNullOrEmpty(TextBox68.Text))
{
显示(GridView1_RowCommand());
}
}
}
受保护的void GridView1_row命令(对象发送方,GridViewCommandEventArgs e)
{
如果(e.CommandName==“Valj”)
{
var valj=新Guid((字符串)e.CommandArgument);
var visadagbok=(从DagbokFactoryBase.All中的x开始)
其中(x.ID==valj)
选择x).FirstOrDefault();
返回visadagbok;
}
}

GridView1\u RowCommand的返回类型无效,因此该方法将无法将任何数据返回到
Show
方法。您可以选择执行两个选项


  • GridView1\u RowCommand
    方法调用
    Show
    方法(当.net framework为网格执行事件调用时,最佳选项)
  • e、 g

  • 如果您想为丢失耦合编写基于事件的编程,那么您需要创建一个属性,在设置属性值时调用委托。从“GridView1_RowCommand”为属性赋值。此委托将调用“Show”方法
  • 比如:


    GridView1_row命令
    是一个
    void
    -因此它实际上不返回任何内容。您试图将其返回到哪里?感谢User35443编辑内容以使其可读。StackOverFlow的新特性。
    protected void Page_Load(object sender, EventArgs e)
            {
                if (Page.IsPostBack)
                {
    
                }
                else
                {
                    //TextBox68.Text = Request["ID"];
    
                    if (!string.IsNullOrEmpty(TextBox68.Text))
                    {
                        Show(GridView1_RowCommand());
                    }
                }
            }
            protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if (e.CommandName == "Valj")
                {
                    var valj = new Guid((string)e.CommandArgument);
    
                    var visadagbok = (from x in DagbokFactoryBase.All
                                         where (x.ID == valj)
                                         select x).FirstOrDefault();
                    return visadagbok;
    
                }
    
            }
    <asp:TemplateField>
        <ItemTemplate>
        <asp:Button ID="AddButton" runat="server"
        CommandName="Valj"
        CommandArgument="<%# ((GridViewRow) Container).ID %>"
        Text="Gå till" />
        </ItemTemplate>
    </asp:TemplateField>
    
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
       if (e.CommandName == "Valj")
       {
            var valj = new Guid((string)e.CommandArgument);
            var visadagbok = (from x in DagbokFactoryBase.All
                                         where (x.ID == valj)
                                         select x).FirstOrDefault();
            Show(visadagbok);
    
       }
    }
    
    public delegate void ShowHandler(string id);
    
    public string Id
    {
        set
        {
            ShowHandler _show = new ShowHandler(Show);
            if (_show != null)
            {
                _show(value);
            }
        }
    }
    
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        //set of existing code
        Id = visadagbok
    }
    
    public void Show(string Id)
    {
        //set of code
    }