以编程方式更新详细信息查看C#

时间:2010-11-19 19:55:37

标签: c# detailsview

如何以编程方式更新详细信息视图。不是通过SQL DataSource或通过向导。我想从Code-Behind(.cs)更新详细信息视图

我有一个载有UserNames的下拉列表,在选择UserNAME时,我正在加载详细信息视图和用户信息。

现在我想以编程方式提供更新功能。

我该怎么做?..

2 个答案:

答案 0 :(得分:0)

尝试在详细信息视图周围放置更新面板。向面板添加异步回发触发器 - 下拉列表的更改事件。

将下拉列表设置为autopostback。

如果没有完整的回发,您将获得所需的行为。

你可能会做得更好,但这会奏效。

答案 1 :(得分:0)

如果您已经在下拉列表选择后显示任何表单上的数据,那么可行 你正在使用“SelectedIndexChanged”事件。

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
      StringBuilder sb = new StringBuilder();
      // show user details for example by get the data from db
      string query = "SELECT userId, UserName FROM Users";
      SqlConnection conn = new SqlConnection("conn string");
      SqlCommand comd = new SqlCommand(query, conn);
      conn.Open();
      using(SqlDataReader r = comd.ExecuteReader())
      {
          while(r.Read()) 
          {                 
             sb.AppendLine(r.GetInt32(0) + ", " + r.GetString(1));                 
          }
          conn.Close();
      }
      textBox1.Text = sb.ToString();
 }

通过设置所需的索引来执行刷新数据:

this.comboBox1.SelectedIndex = 0;

它调用SelectedIndexChanged envent并刷新用户详细信息。

当然,你可以更有效率地做到这一点。

[编辑]

您可以通过在连接到db:

的DataGridView控件中显示详细视图来更新数据库中的数据
SqlDataAdapter adapter = new SqlDataAdapter("select * from users", conn);
DataSet ds = new DataSet();
adapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];

在DataGridView中编辑数据,毕竟:

adapter.Update(ds);

完成!