解决方案 »

  1.   

    代码:(数据库乱了)
    void comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
              
                try
                {
                    if (serialPort1.IsOpen)
                    {      int bytesToRead = serialPort1.BytesToRead;                       byte[] lAryBytes = new byte[bytesToRead];
                        int lIntLen = serialPort1.Read(lAryBytes, 0, lAryBytes.Length);
                        byte[] lAryData = new byte[lIntLen];
                        if (lIntLen > 0)
                        {
                            //byte[] lAryData = new byte[lIntLen];
                            for (int i = 0; i < lIntLen; i++)
                            {
                                lAryData[i] = lAryBytes[i];                        }
    //串口数据读取
      lStrRecv = BitConverter.ToString(lAryData).Replace("-", "");
     if (bytesToRead < 70)
         return;
    //解析插入数据库
    data_type = lStrRecv.ToUpper().ToString().Substring(0, 2);                    
      

  2.   

    首先你
    if (serialPort1.IsOpen)
    根本就是废话
    不OPEN能有数据返回吗定义个全局byte数组
    再定义个全局int变量收到的数组,for循环写入全局byte数组里,然后修改int变量,记录当前的索引
    再收到,继续之前的索引往下copy
    直到copy够70个了,就处理一下,然后把索引清零
      

  3.   

    或者用List<byte> List1=new List<byte>();
    接到数组之后,循环List1.Add(),加入进去
    都加完了,判断一下List1.Count如果够70了,就循环处理一下
    然后List1.Clear();