C# 错误“输入字符串的格式不正确”

C# 错误“输入字符串的格式不正确”,c#,asp.net,gridview,C#,Asp.net,Gridview,我正在使用asp.net、c和SQL server开发一个web应用程序项目。上载过程工作正常,但下载过程收到此错误。输入字符串的格式不正确。表中的列类_id是varchar,我在gridview中将它用作DataKeyName <asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClick="DownloadFile" CommandArgument='<%# Eval(

我正在使用asp.net、c和SQL server开发一个web应用程序项目。上载过程工作正常,但下载过程收到此错误。输入字符串的格式不正确。表中的列类_id是varchar,我在gridview中将它用作DataKeyName

<asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClick="DownloadFile"
                CommandArgument='<%# Eval("class_id") %>'></asp:LinkButton>
如何解决这个错误。
提前感谢

来自命令的值类似于uc3f13se。然后尝试将其解析为整数。该值不是整数,因此int.Parse将失败

int class_id = int.Parse((sender as LinkButton).CommandArgument);
您可能应该将其用作字符串,CommandArgument很可能是一种字符串类型,您已经给出了示例值:

var class_id = ((LinkButton)sender).CommandArgument;
当然,这是假设数据库中的class_id列是varchar或其他字符串接受类型


如果您对int.Parse有更多问题,您可以访问它,它会抛出什么类型的异常,以及是如何导致这些异常的。

哪一行给出了此错误?有趣的是,虽然可能猜得太多,但您可能最容易告诉我们。您是否在该行设置了断点以检查发送方对象的CommandArgument属性中是否发送了任何值?其中[class_id]+[module_id]像“%+para.Text.Trim+%”?这会导致您的问题,但您根本不应该连接字符串来创建sql字符串。请改为使用参数。抱歉,此代码已更正,因此用于搜索文件详细信息。我刚从[讲师]中删除了是的,我删除了点,并且类_以字符串格式显示。。此行中的错误int class_id=int.Parsesender as LinkButton.CommandArgument;它可以工作,但现在我遇到了以下错误ExecuteReader:CommandText属性尚未在同一个codecmd.Connection=con中初始化;不公开;使用SqlDataReader sdr=cmd.ExecuteReader{sdr.Read;bytes=byte[]sdr[filePath];contentType=sdr[fileType].ToString;fileName=sdr[fileName].ToString;}con.Close;这似乎是个新问题。我提供的答案回答了你原来的问题。我建议将这一部分标记为答案,然后尝试找出下一部分。如果它继续失败,请发布一个新问题。我确实知道您的问题是什么,您正在创建一个与您正在生成的SqlConnection无关的命令。这里的提示是SqlCommand对象有一个CreateCommand方法。从这里开始:SqlCommand=connection.CreateCommand;从[ClassAssignmentModule]中的[讲师]中选择[class\u id]、[module\u id]、[type]、[start\u date]、[end\u date]、[name]、[filePath];为什么有两个来自声明?
var class_id = ((LinkButton)sender).CommandArgument;