插入更新删除后,如何从页面加载刷新下拉菜单?

时间:2019-09-05 03:42:56

标签: c# postgresql visual-studio-2017

嗨,我是第一次使用C#的新手。我已经成功地将数据从下拉列表加载到文本字段中。还可以从数据库表中插入,更新和删除记录。现在,我正面临着这个问题。每个新记录插入db表,更新或删除时,从Page_Load加载的我的下拉列表不会刷新我的下拉列表。

我在线进行了一些研究,而不是使用Ajax。我可能会使用另一个技巧代码DropDownList2.DataBind();

无论如何,刷新我的下拉列表仍然无效。任何专家都可以给我一些建议。我把代码行放错了吗?

下面是我的删除功能代码。

 connection.ConnectionString = 
 ConfigurationManager.ConnectionStrings["constr"].ToString();
 connection.Open();
 NpgsqlCommand cmd = new NpgsqlCommand();
 cmd.Connection = connection;
 cmd.CommandText = "Delete from student_db where id=@id";
 cmd.CommandType = CommandType.Text;
 cmd.Parameters.Add(new NpgsqlParameter("@id", 
 Convert.ToInt32(DropDownList2.SelectedItem.Value)));
 cmd.ExecuteNonQuery();
 cmd.Dispose();
 DropDownList2.DataBind();
 connection.Close();

1 个答案:

答案 0 :(得分:0)

数据更改后,数据库不会向您的代码库触发事件。您需要围绕内存集合使用类似Observable的包装器类。

https://docs.microsoft.com/en-us/dotnet/api/system.collections.objectmodel.observablecollection-1?redirectedfrom=MSDN&view=netframework-4.8

如果在其他客户端应用程序更新数据时需要更新,则需要使用RabbitMQ之类的消息代理,或者提供外部API来接收MVC WebAPI之类的通知。

最后一个选项将在执行操作后重新查询,但这可能会严重影响您的网络流量。