need4spdzz 2021-06-24 16:20 采纳率: 33.3%
浏览 8

Sql语句加了where之后,OleDbdataReader不读取内容?

我本来想实现的是点击comboBox中的内容,然后有几个textBox显示数据库中相应的东西,但是,当sql查询语句加了where之后,根本没数据进来,reader的HasRows都是false,不知道为啥,但是去掉where条件,才可以读取数据。

private void comboBox17_SelectedIndexChanged(object sender, EventArgs e)
        {
            projectname1 = comboBox1.Text;
            OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + @"\" + projectname1 + ".accdb;Persist Security Info=False;");
            con.Open();
            
            OleDbCommand cmd = new OleDbCommand("select * from 桩位设计数据 where 孔号 ='"+comboBox17.Text+"'",con);
            OleDbDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                textBox13.Text = reader["目标设计深度"].ToString(); textBox17.Text = reader["桶体长L"].ToString(); textBox19.Text = reader["桶体厚度t"].ToString(); textBox21.Text = reader["水位埋深"].ToString(); textBox15.Text = reader["清淤厚度"].ToString();
                textBox14.Text = reader["分层高度"].ToString(); textBox18.Text = reader["桶体直径D"].ToString(); comboBox18.Text = reader["桶体个数"].ToString(); textBox20.Text = reader["泥面高度"].ToString(); textBox16.Text = reader["桶体重量"].ToString();
            }
            reader.Close();
            con.Close();
        }

  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-14 21:10
    关注

    根据你提供的代码和信息分析,可能是因为你的where条件不符合数据库中的数据,导致查询到的结果为空,从而OleDbdataReader无法读取内容。建议你检查一下comboBox17中选中的项是否与数据库中的数据一致,或者尝试手动输入一个已经存在的孔号,检查是否能够查询到数据。如果问题依然存在,可以尝试使用Debug模式逐行调试代码,找出具体出错的原因。

    评论

报告相同问题?

悬赏问题

  • ¥30 关于R语言运行分区生存模型中的问题!
  • ¥15 psoc creator的软件为什么我下载了之后没有Peripheral Driver Library文件
  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
  • ¥100 求Web版SPC控制图程序包调式
  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常