跳转至内容
  • 社区首页
  • 版块
  • 最新
  • 标签
  • 热门
折叠

GitHub中文论坛

mmkkjlsM

mmkkjls

@mmkkjls
关于
帖子
1
主题
1
分享
0
群组
0
粉丝
0
关注
0

帖子

最新 最佳 有争议的

  • c# 根据多条ID条件查询文件中的内容显示出
    mmkkjlsM mmkkjls
     public DataTable ReadFile(string string_0, bool bool_0, DateTime StartTime, DateTime EndTime, long DianID, bool bool_1 = true, int int_0 = 0)
            {
                idList = new List<long>();
    
                DataTable dataTable = NewTable(bool_1);
                //progressBar1.Value = 0;
                if (File.Exists(string_0))
                {
                    BinaryReader binaryReader = OpenFile(string_0, Encoding.Default);
                    //progressBar1.Maximum = Convert.ToInt32(binaryReader.BaseStream.Length / 36) + 2;
                    int i = 100;
                    for (int j = 0; i < binaryReader.BaseStream.Length; i += 36, j++)
                    {
                        //progressBar1.Value++;
                        binaryReader.BaseStream.Position = i;
                        long num = BitConverter.ToInt64(binaryReader.ReadBytes(8), 0);
                        binaryReader.BaseStream.Position = i + 8;
                        uint num2 = BitConverter.ToUInt32(binaryReader.ReadBytes(4), 0);
                        binaryReader.BaseStream.Position = i + 12;
                        double num3 = BitConverter.ToDouble(binaryReader.ReadBytes(8), 0);
                        binaryReader.BaseStream.Position = i + 20;
                        uint num4 = BitConverter.ToUInt32(binaryReader.ReadBytes(4), 0);
                        binaryReader.BaseStream.Position = i + 24;
                        uint num5 = BitConverter.ToUInt32(binaryReader.ReadBytes(4), 0);
                        binaryReader.BaseStream.Position = i + 28;
                        long dateData = BitConverter.ToInt64(binaryReader.ReadBytes(8), 0);
                        DateTime dateTime = DateTime.FromBinary(dateData);
                        bool flag = false;
                        if (bool_0)
                        {
                            if ((num5 & 0x40000u) != 0 || (num5 & 0x80000u) != 0 || (num5 & 0x200000u) != 0)
                            {
                                flag = true;
                            }
                        }
                        else
                        {
                            flag = true;
                        }
                        if (!flag)
                        {
                            continue;
                        }
                        if (num3.ToString().ToUpper().Contains("E"))
                        {
                            int length = num3.ToString().ToUpper().IndexOf("E");
                            num3 = Convert.ToDouble(num3.ToString().Substring(0, length));
                        }
                        idList.Add(num);                 
                        DataRow dataRow = dataTable.NewRow();
                        dataRow["所在密采文件"] = Path.GetFileName(string_0);
                        dataRow["记录ID"] = j;
                        dataRow["唯一编码"] = num;
                        dataRow["物理地址"] = num2;
                        dataRow["值"] = num3;
                        dataRow["原始值"] = num4;
                        dataRow["状态ID"] = num5;
                        dataRow["对应时间"] = dateTime;
                        dataRow["文件路径"] = Path.GetDirectoryName(string_0);
                        Enum2 @enum = (Enum2)int_0;
                        dataRow["文件来源"] = @enum.ToString();
    
                        DateTime value = dateTime;
                        if (value >= StartTime && value <= EndTime)
                        {
                            if (DianID == 0 || num == DianID)
                            {
                                dataTable.Rows.Add(dataRow);
                                continue;
                            }
                        }
    
                    }
                    //progressBar1.Value = progressBar1.Maximum;
                    binaryReader.Close();
                }
    
                return dataTable;
            }
    
    

    private void checkButton1_CheckedChanged(object sender, EventArgs e)
    {
    string sql = "SELECT UniqueID FROM DeviceModifyDetail WHERE DevLabel LIKE '%028A04%'";
    object d = SqlHelper.ExecuteScalar(Connstr, CommandType.Text, sql);

            string UniqueID =Convert.ToString(d);
            for (int i = 0; i < this.gridView1.RowCount; i++)
            //遍历表中的所有行
            {
                if (this.gridView1.IsRowSelected(i) == true)
                //判断当前行是否被选中
                {
                    try
                    {
    
                        UniqueID = this.gridView1.GetDataRow(i)["UniqueID"].ToString();//取选中行的ID字段的值
    
                    }
                    catch
                    {
    
                    }
                }
            }
    
    
            string str = dateEdit1.DateTime.ToString("yyyyMMddHH");
    
            string mc = mcPath;//读取密采文件夹
    
            string fileName = mc + str + ".mcZ";
    
            isCompress = true;
            bool exist = System.IO.File.Exists(fileName);
    
            if (!exist)
            {
                fileName = mc + str + ".mc";
                isCompress = false;
                mcFile = fileName;
            }
    
            ////解压,存在就不重复解压
    
    
            if (isCompress)
            {
                mcFile = fileName.Substring(0, fileName.Length - 1);
                if (!File.Exists(mcFile))
                    DeZip(fileName, mcFile);
            }
            
            long dianID = Convert.ToInt64(UniqueID);
            DateTime dt1 = dateEdit1.DateTime;
            DateTime dt2 = dateEdit2.DateTime;
            new Thread(() => {
    
            DataTable dataTable = ReadFile(mcFile, false, dt1, dt2, dianID, true, 0);
             
            dataTable.AcceptChanges();
            gridControl1.DataSource = dataTable;
              
            }).Start();
            Thread tr = new Thread(Thread.EndThreadAffinity);
        }
    
    ReadFile方法根据条件查找文件中的内容,显示出。
    想实现通过sql语句查询出的结果多条件“ID”,查询文件中的内容显示出来。
    现在只能实现单条查询,如何实现呢?
    技术交流
  • 登录

  • 第一个帖子
    最后一个帖子
0
  • 社区首页
  • 版块
  • 最新
  • 标签
  • 热门