SqlCommand cmd1 = new SqlCommand("select Max(user_phone+'@'+user_homephone+'#'+user_name) from tb_user where user_ID='" + M_user_ID + "' ", operatedb.conn);
            operatedb.Open();
            strResult1 = cmd1.ExecuteScalar().ToString();
            operatedb.Close();
            txtphont.Text = strResult1.Substring(0, strResult1.IndexOf('@'));
            txthomephone.Text = strResult1.Substring(strResult1.IndexOf('@')+ 1, strResult1.IndexOf('#')- 1);
            txtname.Text = strResult1.Substring(strResult1.IndexOf('#') + 1);strResult1返回的值是 13435424343@22345543#刘艳红
txthomephone.Text = strResult1.Substring(strResult1.IndexOf('@')+ 1, strResult1.IndexOf('#')- 1);出现错误
会提示:索引和长度必须引用该字符串内的位置。

解决方案 »

  1.   

    txthomephone.Text =strResult1.Substring(strResult1.IndexOf('@')+ 1, strResult1.Substring(strResult1.IndexOf('@')+ 1).IndexOf('#')- 1)
      

  2.   

    txthomephone.Text =strResult1.Substring(strResult1.IndexOf('@')+ 1, strResult1.Substring(strResult1.IndexOf('@')+ 1).IndexOf('#'))
      

  3.   

    string str = "13435424343@22345543#刘艳红";
                string result = str.Substring(str.IndexOf('@') + 1, str.LastIndexOf('#') - str.IndexOf("@") - 1);
    或者使用Split来截取更好。。
      

  4.   

    string str = "13435424343@22345543#刘艳红";
    string[] strArr = str.Split(new char[] { '@', '#' });
                foreach (var item in strArr)
                {
                    Console.WriteLine(item);
                }
                //13435424343
                //22345543
                //刘艳红
      

  5.   

    substring(1,2)参数1截取起点,参数2截取长度,你的起点是12截取长度是21,从12开始截21个,哪来那么多字符串
      

  6.   

    例子
    String myString = "abc";
    bool test1 = myString.Substring(2, 1).Equals("c"); // This is true.
    Console.WriteLine(test1);
    bool test2 = String.IsNullOrEmpty(myString.Substring(3, 0)); // This is true.
    Console.WriteLine(test2);
    try {
       string str3 = myString.Substring(3, 1); // This throws ArgumentOutOfRangeException.
       Console.WriteLine(str3);
    }
    catch (ArgumentOutOfRangeException e) {
       Console.WriteLine(e.Message);
    }    
      

  7.   


    Substring函数用法
      

  8.   

    string[] arr=str.Split(new string[]{"@","#"}, StringSplitOptions.StringSplitOptions.RemoveEmptyEntries);