【问题标题】:need a button to bring up certain datagridview需要一个按钮来调出某些datagridview
【发布时间】:2013-06-21 20:01:22
【问题描述】:

大家好,我需要一个按钮来在数据网格视图中显示某个数据库。是否有可能它可以在同一个表单上提出而不被定向到新表单??

这是我到目前为止所做的。

我创建了一个带有 3 个按钮的表单 - button1、button2、button3。

我有三个数据库,并为每个数据库创建了数据集——我们只称它们为 datasat1、dataset2 和 dataset3。

现在我知道我可以将数据集拖到数据网格视图中的页面上。但我不想在页面上只有一个。我希望它根据单击的按钮更改和显示数据集。所以button1,点击时必须显示dataset1,以此类推。

对此非常陌生,抱歉。

哦,这就是我迄今为止想出的(尽管我认为这可能是非常错误的)

    private void button1_Click(object sender, EventArgs e)
    {
        this.database1DataGridView.Visible = true;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        this.database2DataGridView.Visible = true;
    }

    private void button3_Click(object sender, EventArgs e)
    {
        this.database3DataGridView.Visible = true;
    }        

每个dataviewgrid的原始可见性设置为false

【问题讨论】:

    标签: c# winforms datagridview dataset


    【解决方案1】:

    在按钮单击处理程序中更改“DataGridView”的“DataSource”

    button1.Click += button1_Click    
    
    void (object sender, EventArgs e)
    {
        _yourDataGridView.DataSource = dataset1;
        _yourDataGridView.DataMember = "TableName"; // table you want to show
    }   
    

    http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.datasource.aspx

    【讨论】:

    • 尝试使用我的推荐)
    • 好的,我还是遗漏了一些东西 错误 The name '_yourDataGridView' does not exist in the current context
    • 这是我得到的错误,如果我说“去定义”,我只能在元数据中看到它
    • 这是示例名称。使用您的 DataGridView 名称,例如 this.database1DataGridView (当然所有 3 个按钮单击处理程序中的同一个)而不是“TableName”,您需要使用您的表名,或者写 _yourDataGridViewName.DataSource = dataset1.Tables[0]; 而不设置 DataMember
    • 是的,哈哈,我是新人,但不是那么新。我确实用我的特定数据网格视图名称替换了“_yourDataGridView”。但我还没有贴花或任何东西。我应该吗?
    【解决方案2】:

    也许您可以尝试在按钮单击事件中将数据集绑定到 gridview 数据源,就像 Guru Stron 所说的那样......

    类似这样的:

    protected void Button1_Click(object sender, EventArgs e)
    {
        using (DataTable dt1 = getDataTable1())
        {
            using (DataSet ds1 = new DataSet())
            {
                ds1.Tables.Add(dt1);
                YourDataGridView.DataSourceID = null;
                YourDataGridView.DataSource = ds1.Tables[0].DefaultView;
                YourDataGridView.DataBind();
            }
        }
    }
    

    或者,如果您可以稍微修改一下您的代码:

    private void button1_Click(object sender, EventArgs e)
    {
        database1DataGridView.Visible = true;
        database2DataGridView.Visible = false;
        database3DataGridView.Visible = false;
    }
    
    private void button2_Click(object sender, EventArgs e)
    {
        database2DataGridView.Visible = true;
        database1DataGridView.Visible = false;
        database3DataGridView.Visible = false;
    }
    
    private void button3_Click(object sender, EventArgs e)
    {
        database3DataGridView.Visible = true;
        database1DataGridView.Visible = false;
        database2DataGridView.Visible = false;
    } 
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多