C# 在insert命令asp中获取ID,并在c代码隐藏中使用它#
我有一个列表视图C# 在insert命令asp中获取ID,并在c代码隐藏中使用它#,c#,asp.net,insert,C#,Asp.net,Insert,我有一个列表视图 <asp:ListView ID="ListViewNews" runat="server" DataSourceID="SqlDataSourceAddNews" DataKeyNames="Id" InsertItemPosition="LastItem" OnItemCommand="ListViewNews_ItemCommand"> <InsertItemTemplate> <asp:FileUpload ID="
<asp:ListView ID="ListViewNews" runat="server" DataSourceID="SqlDataSourceAddNews" DataKeyNames="Id" InsertItemPosition="LastItem" OnItemCommand="ListViewNews_ItemCommand">
<InsertItemTemplate>
<asp:FileUpload ID="FileUpload2" runat="server" />
</InsertItemTemplate>
有什么简单的解决方案可以在这里获取id吗?试试这个
将insert命令更改为:
InsertCommand="INSERT INTO News(TITLE, SUMMARY, TEXT, DATETIME, PHOTO, [FILE])
VALUES (@TITLE, @SUMMARY, @TEXT, @DATETIME, @PHOTO, @FILE);
SELECT @Id = SCOPE_IDENTITY();"
将新的输出参数添加到InsertParameters
列表
<asp:Paramter Direction="Output" Name="Id" Type="Int32" />
非常感谢。为了获得id,我使用int id=(int)e.Command.Parameters[“@id”].Value;
InsertCommand="INSERT INTO News(TITLE, SUMMARY, TEXT, DATETIME, PHOTO, [FILE])
VALUES (@TITLE, @SUMMARY, @TEXT, @DATETIME, @PHOTO, @FILE);
SELECT @Id = SCOPE_IDENTITY();"
<asp:Paramter Direction="Output" Name="Id" Type="Int32" />
protected void SqlDataSourceAddNews_Inserted(object sender, EventArgs e)
{
string strId = e.Command>parameters("@Id").Value.ToString();
FileUpload fu2 = (FileUpload)ListViewNews.InsertItem.FindControl("FileUpload2");
if (fu2.HasFile)
{
string aut = strID + ".jpg";
fu2.SaveAs(Server.MapPath("~/images/NewsPhotos/" + aut));
}
}