【发布时间】:2020-05-18 17:21:00
【问题描述】:
这是我的Application_End C# 代码,用于使用数组中的值更新数据库表:
protected void Application_End(object sender, EventArgs e)
{
string conStr = Session["ConnectionString"].ToString();
string CMDDDStr = "SELECT * FROM Portfolio";
bool continueFlag = true; //use that somehow
if (continueFlag)
{
SqlDataAdapter daa = new SqlDataAdapter(CMDDDStr, conStr);
DataSet dss = new DataSet();
daa.Fill(dss);
for (int i = 0; i < dss.Tables[0].Rows.Count - 4; i++)
{
int[] services = (int[])Application["services"];
int index0 = services[i];
dss.Tables[0].Rows[i][i+4] = index0;
//// Create connected scenario connection
}
SqlCommandBuilder builder = new SqlCommandBuilder(daa);
daa.UpdateCommand = builder.GetUpdateCommand();
daa.Update(dss);
}
}
这是我的数据库表的 SQL:
CREATE TABLE [dbo].[Portfolio] (
[Description] NVARCHAR (MAX) NULL,
[ImageData] VARBINARY (MAX) NULL,
[delete] NVARCHAR (50) NULL,
[id] INT IDENTITY (1, 1) NOT NULL,
[service0] INT NULL,
[service1] INT NULL,
[service2] INT NULL,
[service3] INT NULL,
[service4] INT NULL,
PRIMARY KEY CLUSTERED ([id] ASC)
);
问题是......这没有任何作用。它不更新数据库 - 有什么想法吗?
(问题出在代码上)
【问题讨论】:
-
this answer 中的最后一条评论可能解释了您所看到的。
Application_End在应用程序崩溃或被强制关闭时不会被调用 -
补充一点:调用数据库可能不是关闭应用程序的最佳方法。
-
@Xerillio 我知道这不是最好的主意,它是学校的一项任务,所以我必须这样做......我可以使用什么以便任何时候关闭视觉工作室(强制- 按下 X 按钮)该代码将运行?
-
我认为您不需要以下可能导致问题的说明:daa.UpdateCommand = builder.GetUpdateCommand();新的 SqlCommandBuilder(daa);已经在构建更新命令,看起来您可能正在杀死自动生成的命令。
-
@jdweng 没有它仍然无法工作......
标签: c# sql asp.net sql-server global-asax