【问题标题】:Read in a databse table but only get one field读入数据库表但只得到一个字段
【发布时间】:2017-06-30 21:53:45
【问题描述】:

我有一个包含四个文本字段的表,但是当我执行以下操作时,我在 DataGridview 中只得到一个字段。我不认为我没有得到所有的记录。如何解决它,以便我获得所有字段和记录? text= 表名 这是一个函数/方法。是查询把事情搞砸了吗?

   string connetionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\temp\\Set.mdb;Persist Security Info=False";
                string sql = "SELECT Property, PValue, PDefault, PType FROM "+text;
                OleDbConnection connection = new OleDbConnection(connetionString);
                OleDbDataAdapter dataadapter = new OleDbDataAdapter(sql, connection);
                DataSet ds = new DataSet();
                connection.Open();
                dataadapter.Fill(ds, text);
                connection.Close();
                dataGridView1.DataSource = ds;
                dataGridView1.DataMember = text;

【问题讨论】:

  • 您是否尝试使用DataGridView 而不是 ListView?如果我没记错的话,在 ListView 中,您必须自己填充列
  • 代码显示它是一个 datagridview 是的它是一个 DataGridView @Larstech 谢谢改变了问题。
  • 尝试在 [Property] 周围加上括号。这可能是一个关键字,可能会干扰您的查询。
  • @LarsTech,在这种情况下,它会抛出语法错误,并且不会像 OP 所说的那样只获取单个字段
  • @Rahul 我只是在向他提出想法。从提供的代码中看不出什么。

标签: c# database ms-access datasource


【解决方案1】:

有无数的事情可能是错误的。但是您的问题中没有一个证据。

您的DataGridView 可能没有添加正确的列,或者没有AutoGenerateColumns = true

您没有提到数据集中是否确实缺少数据,或者只是您的视图被破坏了。难道你不知道你没有拿回所有的记录吗?不只是有预感吗?断点那条线,先生!

您是否尝试过直接在数据库上运行该命令?那里的结果好吗?

我希望答案是数据很好,但是视图没有显示所有数据,数据...

【讨论】:

  • 删除datagridView中的人工列并添加行datagridviiew,AutoGenerateColumns = true;固定感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-14
  • 2021-08-31
  • 2021-07-20
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多