从datagridview导出数据如果默认格式"JJJJJ:KKKKKK:YYMMDD:HHNN00"
(注:J=机号K=指纹号Y=年M=月D=日H=时N=分S=秒,其它不作处理)
如同号为8,指纹号为101
如有JJJJJ就用“00008:000101:090616:205900”
怎样算法高效

解决方案 »

  1.   

    跟第三方控有啥关系,我想判断ascii值来获取,如有JJJJJ 就用00008 不知道应该怎样去写了
      

  2.   

    个人一般把datagridview当做一个显示工具,操作的是数据源,如果需要复杂的操作还可以用Linq
      

  3.   

    我是.net2.0没有linq啊, 我是从考勤机把数据导到datagridview显示,然后按用户自定义导出去,急
      

  4.   

     ArrayList list = new ArrayList();
                        StringBuilder sb = new StringBuilder();
                        string Tempstring = "";
                        string datas = "";
                        string[] arrtemp;
                        string Values = textBox4.Text.Trim().ToUpper();
                        foreach (DataGridViewRow dgvr in dataGridView2.Rows)
                        {
                            for (int i = 0; i < Values.Length; i++)
                            {
                                datas = Values.Substring(i, 1).ToUpper();
                                switch (datas)
                                {
                                    case "J":
                                        if (list.Contains("J") == false)
                                        {
                                            arrtemp = Values.Split('J') ;
                                            sb.Append(Convert.ToUInt32(dgvr.Cells["jh"].Value).ToString("d"+ Convert.ToString((arrtemp.Length - 1))));
                                            list.Add("J");
                                        }
                                        break;
                                    case "K":
                                        if (list.Contains("K") == false)
                                        {
                                            arrtemp = Values.Split('K');
                                            sb.Append(Convert.ToUInt32(dgvr.Cells["no"].Value).ToString("d" +Convert.ToString(arrtemp.Length - 1) ));
                                            list.Add("K");
                                        }                                    
                                        break;
                                    case "Y":
                                        
                                        if (list.Contains("Y") == false)
                                        {                                        
                                            arrtemp = Values.Split('Y');
                                            if (arrtemp.Length == 5)
                                            {
                                                sb.Append(dgvr.Cells["getdate"].Value.ToString().Substring(0, 4));                                        }
                                            if (arrtemp.Length == 3)
                                            {
                                                sb.Append(dgvr.Cells["getdate"].Value.ToString().Substring(2, 2));                                        }
                                            list.Add("Y");
                                        }                                      
                                        break;
                                    case "M":
                                        if (list.Contains("M") == false)
                                        {
                                            arrtemp = Values.Split('M');
                                            sb.Append(dgvr.Cells["getdate"].Value.ToString().Substring(5, 2));
                                            list.Add("M");
                                        }                                     
                                        break;
                                    case "D":
                                        if (list.Contains("D") == false)
                                        {
                                            arrtemp = Values.Split('D');
                                            sb.Append(dgvr.Cells["getdate"].Value.ToString().Substring(8, 2));
                                            list.Add("D");
                                        }                                     
                                        break;
                                    case "H":
                                        if (list.Contains("H") == false)
                                        {
                                            arrtemp = Values.Split('H');
                                            sb.Append(dgvr.Cells["getdate"].Value.ToString().Substring(11, 2));
                                            list.Add("H");
                                        }                                     
                                        break;
                                    case "N":
                                        if (list.Contains("N") == false)
                                        {
                                            arrtemp = Values.Split('N');
                                            sb.Append(dgvr.Cells["getdate"].Value.ToString().Substring(14, 2));
                                            list.Add("N");
                                        }                                     
                                        break;
                                    default:
                                        sb.Append(datas);
                                        break;                            }
                            }
                            Tempstring = sb.ToString() + "\r\n";
                            sb.Remove(0, sb.Length);
                            list.Clear();
                            MessageBox.Show(Tempstring);                    }                }
    总算搞出来了,但看起来好多代码,能不能哪个大侠给我优化一样