代码之家  ›  专栏  ›  技术社区  ›  msbyuva

以编程方式更新详细信息视图C#

  •  0
  • msbyuva  · 技术社区  · 15 年前

    我有一个包含用户名的下拉列表,在选择用户名时,我将加载包含用户信息的详细信息视图。

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

    2 回复  |  直到 8 年前
        1
  •  0
  •   Broam    15 年前

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

    将下拉列表设置为autopostback。

    你将得到想要的行为没有一个完整的回发。

    你也许能做得更好,但这会奏效的。

        2
  •  0
  •   Przemysław Michalski    15 年前

    您正在使用“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环境并刷新用户详细信息。

    当然你可以做得更有效率。

    [编辑]

    通过在连接到数据库的DataGridView控件中显示详细视图,可以更新数据库中的数据:

    SqlDataAdapter adapter = new SqlDataAdapter("select * from users", conn);
    DataSet ds = new DataSet();
    adapter.Fill(ds);
    dataGridView1.DataSource = ds.Tables[0];
    

    adapter.Update(ds);
    

    完成!

    推荐文章