当前位置: 代码迷 >> ASP.NET >> 怎么获取 在线急等.
  详细解决方案

怎么获取 在线急等.

热度:9743   发布时间:2013-02-25 00:00:00.0
如何获取 在线急等...
数据库中有一个字段,字段内容是 ...号(如 1号,3号,6号)

问:
怎么样获取中间空的?如 数据库中有1号,3号,6号,那么怎么得到中间空的 如2号 和 4号 和5号?

------解决方案--------------------------------------------------------
查找一下,看是不是存在?indexof?
------解决方案--------------------------------------------------------
没测试过,楼主先试试吧
C# code
            using (SqlConnection conn = new SqlConnection("连接字符串"))            {                SqlCommand cmd = new SqlCommand("select replace(列名,'号','') as col1 from 表名", conn);                conn.Open();                List<int> list = new List<int>();                using (SqlDataReader sdr = cmd.ExecuteReader())                {                    while (sdr.Read())                    {                        list.Add(Convert.ToInt32(sdr["col1"]));                    }                }                if (list.Count > 0)                {                    list.Sort();                    bool[] array = new bool[list[list.Count - 1]];                    foreach (int i in list)                        array[i - 1] = true;                    Console.WriteLine("没有的号有:");                    for (int i = 0; i < array.Length; i++)                    {                        if (!array[i])                            Console.WriteLine(i + 1);                    }                }            }
------解决方案--------------------------------------------------------
处理成数字数组,然后循环比较看有没有呗,最笨的办法了
C# code
string str = "1号,3号,6号";            str=str.Replace("号", "");            int[] arr = str.Split(',').OrderBy( p=>p ).Select(p1=>int.Parse(p1)).ToArray();            List<int> result = new System.Collections.Generic.List<int>();             for (int i = arr[0]; i < arr[arr.Length - 1]; i++)            {                if (!arr.Contains(i))                {                    result.Add(i);                }            }
------解决方案--------------------------------------------------------
C# code
 static void Main(string[] args)        {            string[] arry = { "1号", "3号", "5号", "10号","100号" };            List<string> list = new List<string>();            int len = int.Parse(arry.Last().Substring(0, arry.Length - 2));            for (int i = 1; i < len; i++)            {                if (!arry.Contains(i.ToString()+"号"))                {                    list.Add(i.ToString());                }            }            foreach (var item in list)            {                Console.WriteLine(item);            }            Console.Read();        }
------解决方案--------------------------------------------------------
1,用SQL把数字查出来。 select replace(column,'号','') as col1 from table

2,用一个数组保存这个结果

3,弄一个嵌套循环,如果array[i] <>i,则取出所有 array[i]和i之间的值。
  相关解决方案