从MySql db到c#的列重复,为什么?

时间:2017-03-12 14:56:33

标签: c# mysql datagridview

id pojam opis id pojam opis(duplicate columns) 我只是测试从db到c#的连接,而不是列 id pojam opis 我实际上在c#的datagridview中获得 id pojam opis id pojam opis 。以下是我用来将数据库连接到c#:

的代码的一部分
public partial class Form1 : Form
{
    BindingSource bindingSource1 = new BindingSource();
    MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test;user=root;password=;");

    public Form1()
    {
        this.Load += new System.EventHandler(Form1_Load);
        InitializeComponent();
    }

    public void Form1_Load(object sender, EventArgs e)
    {  
        dataGridView1.DataSource = bindingSource1;
        ubaciPodatke();        
    }
    public void ubaciPodatke()
    {
        try
        {
            MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM csharp", conn);
            DataTable table = new DataTable();
            da.Fill(table);
            bindingSource1.DataSource = table;    dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);       
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

是我的错误,还是必须用 phpmyadmin做一些事情:版本信息:4.7.0-rc1 。我觉得它可能会发生,因为这个版本还不稳定吗?

修改:如果我删除form.resx file,你会怎么想? 用户添加了行,这会解决问题吗?

2 个答案:

答案 0 :(得分:0)

解决方案:我必须在form.designer.cs中对某些行link1发表评论,问题就会消失,如照片link2所示。我仍然很好奇为什么会这样,因为我记得只从工具箱中拖动dgv而不是手动添加列名。

答案 1 :(得分:0)

少数事情:
无需在Load事件中执行数据绑定。您可以在InitializeComponent()调用后在构造函数中执行此操作。这与您的问题无关。

我不知道ubaciPodatke是什么意思,因为我不会说那种语言,但希望它等同于InitializeGrid()。在这种情况下,你应该把

dataGridView.DataSource = null;
dataGridView.Rows.Clear();
dataGridView.Columns.Clear(); 

作为尝试后的第一行。我这样做“干净初始化”,因为我有时在设计器中设计Grid,用于“文档和可视化”目的,但是从代码中执行实际网格。此外,它保持InitializeGrid()可重用,从其他地方调用。

此外,与评论中的问题相关,

  

我是否从dgv读取数据错误?

您应该在绑定时从绑定的DataTable读取数据,而不是直接从DataGridView读取数据。