我是这么个思路,先将串口读上来的数据显示在textbox中,这一步早已经实现,现在我想先用很简陋没效率的方式将这个数据与原数据库存储的数据进行覆盖修改,思路就是将修改数据库表的某一行数据的代码用到这里,我串口读上来的数据的格式现在比较简陋,暂时不考虑传输协议,只是用空格将上传数据分为str_addr str_data这种格式,先判断str_data是否为1,如果为1,那么才将str_addr对应的那一行表里面数据修改,否则不修改
  附上这个部分的简陋代码:            str = this.textBox2.Text;//textBox2即为显示从硬件采集上来的数据的文本框,可以正常显示硬件数据
            str_data = str.Substring(str.LastIndexOf(" "));//传上来的数据由空格分开,前半是地址,后半是数据
            str_addr = str.Substring(0, str.LastIndexOf(" "));         if (Convert.ToInt32(str_data) == 1)
            {
                button5.Text = str_addr;
                thisDataSet.Tables["Table_Light"].Rows[Convert.ToInt32(str_addr)]["状态"] = "已连接";
            }
            else
            {
                
            }
其中button5.Text = str_addr;这一句是为了验证是否执行了我这个if语句,结果证明,button5的text确实做出了正确的变化,而且这段代码是用的我修改某行数据的代码,之前验证可行,但是放到这儿数据库对应的那一行并没有变化不知道为什么呢?请求大侠支招!(代码确实不规范,但我仅仅是做一个验证,最终肯定不会采纳这个思路,但是现在这个思路总是调不通!)

解决方案 »

  1.   

    你的意思是修改dataset中的数据后数据库中数据没有变化?没有Update()?
      

  2.   

    没有更新数据库语句嘛,你只是更新了dataset中的数据
      

  3.   

    有啊,我没贴上来,程序现在调的一直有bug,老是提示“对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。”,悲了个催的