按数据库中的ID更新信息-ASP.NET/C#

按数据库中的ID更新信息-ASP.NET/C#,c#,asp.net,sql,database,C#,Asp.net,Sql,Database,感谢您提前查看我的问题 我正试图通过“保存”按钮更新数据库中的信息 目前,我已将其保存,但它将更新保存为新行 我已经获得了我希望更改的行的ID,但我正在努力使其正常工作 ASP.NET: <asp:Button runat="server" ID="btnSave" CssClass="btnSubmit" Text="Save" OnClick="btnSave_Click" /> 我已尝试在按钮上放置命令参数,并在后端对其进行了更改,但收到以下错误: Error 1 N

感谢您提前查看我的问题

我正试图通过“保存”按钮更新数据库中的信息

目前,我已将其保存,但它将更新保存为新行

我已经获得了我希望更改的行的ID,但我正在努力使其正常工作

ASP.NET:

<asp:Button runat="server" ID="btnSave" CssClass="btnSubmit" Text="Save" OnClick="btnSave_Click" />
我已尝试在按钮上放置命令参数,并在后端对其进行了更改,但收到以下错误:

Error   1   No overload for 'btnSave_Click' matches delegate 'System.EventHandler'  C:\Users\laura\Documents\Visual Studio 2010\WebSites\ThirdYearProject\tools\controls\placements\edit.ascx   239

我已经试着修复了一段时间,但我不确定我做错了什么!任何帮助都将不胜感激

我认为Item.ID==0不是空值或其他值。请检查该值。

是打字错误吗?这条线不应该吗

btnSave_Click+= new System.EventHandler(this.btnSave_Click);
是否移动到页面加载事件,甚至是预初始化

我认为下面的答案应该对你们有所帮助


您确定从Placements.GetPlacementByExpire(ItemID,false)中获得现有项目吗;,您可以添加断点,而不是新项,以查看它是否为新项。或者,输出项目信息并在其写入数据库之前进行检查。抱歉,我可能应该在之前执行的函数(btnSave.CommandArgument=PlacementID.ToString();)中添加此信息,但我不知道如何将该信息获取到我上面编写的函数?int PlacementID=Convert.ToInt32(btnSave.CommandArgument); 而不是0起作用。老实说,我不知道我为什么这么做!请使用int.tryparse而不是转换。Tryparse不会抛出异常。
btnSave_Click+= new System.EventHandler(this.btnSave_Click);