none
关于索引和长度必须引用该字符串内的位置。 RRS feed

  • 问题

  •  

    关于索引和长度必须引用该字符串内的位置。参数名: length  问题

    string stuStr = "select Course as '课程名',(select CourseMark  from ScoreInfo where stuno='{0}' and ";
                    stuStr += "ScoreInfo.CourseID=CourseInfo.CourseID ) as '成绩'  from CourseInfo where ClassID='{1}' and semester='{2}'";
                    stuno = cbxstudent.Text.Substring(cbxstudent.Text.IndexOf("(", 0) + 1, 8);
                    string strsql = string.Format(stuStr, stuno, gainclassID(cbxStuCls.Text, txtStuYear.Text), cbxStuSemestre.Text);
                    DataSet dataset3 = new DataSet();
                    dataset3 = showStuScore(strsql);
                    dataGridView1.DataSource = dataset3.Tables["show"];

    2013年6月5日 17:50

答案

全部回复

  •  

    关于索引和长度必须引用该字符串内的位置。参数名: length  问题
                    stuno = cbxstudent.Text.Substring(cbxstudent.Text.IndexOf("(", 0) + 1, 8);


    这条代码报的那个错,初学者,不知道怎么改。。
    2013年6月5日 17:52
  •  stuno = cbxstudent.Text.Substring(cbxstudent.Text.IndexOf("(", 0) + 1, 8);

    这条报错的。

    2013年6月5日 17:53
  • 你出现的异常应该是ArgumentOutOfRangeException异常,你指示的SubString的length长度过大了,已经超过了cbxstudent.Text的长度了, 你应该试试改成下面:

    stuno = cbxstudent.Text.Substring(cbxstudent.Text.IndexOf("(", 0) + 1, cbxstudent.Text.Length-1);


    If my post is helpful,please help to vote as helpful, if my post solve your question, please help to make it as answer. my sample

    2013年6月6日 4:48
  • 换成你说的这,还是报一样的错误。
    2013年6月6日 7:23
  • 你能截图看看嘛?看到具体什么错误的了

    If my post is helpful,please help to vote as helpful, if my post solve your question, please help to make it as answer. my sample

    2013年6月6日 7:35
  • 尝试这样的看看:

    string s = "asasa(asasasa";
    s.Substring(s.IndexOf("("0+ 1);

    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report

    2013年6月6日 7:36
    版主
  • 可能先檢查 cbxstudent.Text 內容會比較好,

    如果內容值是 string.Empty 這段程式就會有問題,

    另外需要保證 "(" 是存在的,

    不然會從字串開頭開始取值,

    除非這是你的本意,否則將會是錯誤的結果,

    最後建議 sql 不要這樣串字串,

    會有 SQL Injection 問題。


    Frank

    2013年6月14日 6:40