C# '无过载';匹配委托';System.EventHandler';

C# '无过载';匹配委托';System.EventHandler';,c#,.net,C#,.net,这段代码生成上面的错误,我试图做一些方法,发送一个文件到ftp服务器 public void btnSend_Click(object sender, GridViewCommandEventArgs e) { msgerror = SP.StrSPBUS_DocClient(Convert.ToInt32(e.CommandArgument.ToString())); if (msgerror.Equals("Sucess")) { String

这段代码生成上面的错误,我试图做一些方法,发送一个文件到ftp服务器

public void btnSend_Click(object sender, GridViewCommandEventArgs e)
{


    msgerror = SP.StrSPBUS_DocClient(Convert.ToInt32(e.CommandArgument.ToString()));

    if (msgerror.Equals("Sucess"))
    {
        String Files = SP.OUTSTR_NMDOCUMENT;
        String Address = SP.OUTSTR_FTPCAM;
        String User = SP.OUTSTR_FTPUSER;
        String Pass = SP.OUTSTR_FTPPASS;

        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(Address + "/" + Path.GetFileName(File));
        request.Method = WebRequestMethods.Ftp.UploadFile;
        request.Credentials = new NetworkCredential(User, Pass);
        request.UsePassive = true;
        request.UseBinary = true;
        request.KeepAlive = false;

        var stream = File.OpenRead(Files);
        byte[] buffer = new byte[stream.Length];
        stream.Read(buffer, 0, buffer.Length);
        stream.Close();

        var reqStream = request.GetRequestStream();
        reqStream.Write(buffer, 0, buffer.Length);
        reqStream.Close();
    }
    else
    {
        SP.StrImprimeMessage("Error!");
        return;
    }
}
这是按钮的代码

<tr class="tabelinner">
            <td class="leftcell" valign="middle">

                    <asp:Button ID="btnSrend" runat="server" Text="Send" CssClass="ButtonLink" ValidationGroup="sending"  CommandArgument="Sending" onclick="btnSend_Click"     />
                <br />
            </td>              
        </tr>



问题在于
GridViewCommandEventArgs
应该是
EventArgs

public void btnSend_Click(object sender, EventArgs e)
编辑:

我看到您的代码中使用了Command参数,所以如果您想使用它,您应该看到

基本上使用
onCommand
而不是
onClick
或将发送者强制转换为按钮来获取命令参数,类似于:

var argument = ((Button)sender).CommandArgument;

按钮单击事件的正确签名为

public void btnSend_Click(object sender, EventArgs e)

但此时您遇到了一个问题,因为传递的EventArgs实例不知道名为
e.CommandArgument
的属性,因此您需要另一种方法在该事件中使用该值。

由于您是新手,请不要忘了向上表决对您有帮助的答案,并将接受的答案检查为完全回答您的问题的答案您应该编辑您的问题并将答案发布到其中,或者为此提出一个新问题,但您当然会遇到一个例外,
CommandArgument=“Sending”
,该单词是一个字符串,您如何将其设置为int?你想干什么?或者应该向StrSPBUS\u DocClient方法发送什么?