【问题标题】:Combobox in DataGridViewDataGridView 中的组合框
【发布时间】:2012-12-12 14:15:59
【问题描述】:

如何在运行时从数据库中的 DataGridView 的组合框中显示文本?

例如,如果下次我想在组合框列中显示该文本时,我要从 DataGridView 的组合框中更新我在数据库中的文本。

sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["Con"].ToString());
selectQueryString = "SELECT Code,CompanyName,FinancialYearStart,FinancialYearEnd,UserName,RoleP FROM CompanyInformation";

sqlDataAdapter = new SqlDataAdapter(selectQueryString, sqlConnection);
sqlCommandBuilder = new SqlCommandBuilder(sqlDataAdapter);

dataTable = new DataTable();
sqlDataAdapter.Fill(dataTable);

bindingSource = new BindingSource();
bindingSource.DataSource = dataTable;

dataGridView3.DataSource = bindingSource;
dataGridView3.Controls.Clear();

DataGridViewComboBoxColumn comboboxColumn = new DataGridViewComboBoxColumn();
comboboxColumn.Items.AddRange("Protected", "UnProtected");
comboboxColumn.HeaderText = "RoleP";
dataGridView3.Columns.Add(comboboxColumn);


private void button10_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Con"].ToString());
    con.Open();

    // if (dataGridView3.Columns.Count >= 4 && dataGridView3.Columns.Count < 10)
    // {
        int i = dataGridView3.Rows.Count;
        int r = 0;

        for (int s = 0; s < i; s++)
        {
            try
            {
                string Role = dataGridView3.Rows[s].Cells[0].Value.ToString();
                int Cod = Convert.ToInt32(dataGridView3.Rows[s].Cells[1].Value.ToString());
                if (Role != "")
                {
                    SqlCommand cmd = new SqlCommand("update CompanyInformation SET RoleP=@Role where Code=@Cod", con);
                    cmd.Parameters.AddWithValue("@Cod", Cod);
                    cmd.Parameters.AddWithValue("@Role", Role);

                    r = cmd.ExecuteNonQuery();
                }
            }
            catch
            {
            }

        }

        if (r >= 1)
        {
            MessageBox.Show("Update Successful");
            SuperUser obj = new SuperUser();
            this.Hide();
            this.ParentForm.Hide();               
        }

【问题讨论】:

  • 到目前为止你有没有尝试过?阅读faqHow to Ask
  • 数据库更新后重新绑定组合框。
  • 那么你如何更新ComboBox中的文字,你如何绑定/显示它。
  • 是的,我尝试使用 datareader,但它失败了,我认为这种方式不正确,所以请帮助我,我对此也没有任何想法

标签: c# winforms


【解决方案1】:

你可以这样做:

DataGridViewComboBoxColumn comboboxColumn = new DataGridViewComboBoxColumn();
comboboxColumn.Items.AddRange("Protected", "UnProtected");
comboboxColumn.HeaderText = "RoleP";
dataGridView3.Columns.Add(comboboxColumn);

检查后

foreach (DataGridViewRow row in dataGridView3.Rows)
{
    (row.Cells[1] as DataGridViewComboBoxCell).Value = yourvalue;
}

【讨论】:

  • 其实我想从数据库中绑定组合框的数据
  • 先生,它没有在组合框上显示文本。
  • 最初我什么都不想显示,但是一旦我运行我的应用程序文本将显示在数据库的组合框中
  • 先生,如果我使用该代码正在单个组合框中获取总数据,但我要求我在组合框中显示哪些数据
  • 先生,我很清楚实际上我有客户信息表,因为我有 7 列,因为我想更新第 7 列名称 Rolep,所以为此我在我的 datagridview 中创建 Rolep 组合框列添加文本受保护,不受保护。如果我更新 RoleP(受保护或不受保护),此值将存储在数据库 RoleP 列中。如果我运行此应用程序,我想在数据库的组合框中显示文本。为什么因为我想知道我有什么数据有来自数据库的组合框
猜你喜欢
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 2014-05-29
  • 2011-02-25
  • 2013-06-22
  • 2011-01-16
  • 1970-01-01
相关资源
最近更新 更多