none
指定的参数已超出有效值的范围 RRS feed

  • 问题

  • string STUD_ID = GridView1.DataKeys[e.RowIndex].Value.ToString();
            string STUD_NAME = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
            string STUD_GENDER = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
            string STUD_ADDRESS = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString();
            string STUD_TELEPHONE = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString();
            string STUD_ZIPCODE = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString();
            string STU_MARK = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[6].Controls[0])).Text.ToString();
                sqlcon = new SqlConnection(strCon);
                string sqlstr = "update STUD_INFO set STUD_NAME='" + STUD_NAME + "',STUD_GENDER='" + STUD_GENDER + "',STUD_ADDRESS='" + STUD_ADDRESS + "',STUD_TELEPHONE='" + STUD_TELEPHONE + "',STUD_ZIPCODE='" + STUD_ZIPCODE + "',STU_MARK='" + STU_MARK + "' where STUD_ID='" + STUD_ID + "'";
                sqlcom = new SqlCommand(sqlstr, sqlcon);
                sqlcon.Open();
                sqlcom.ExecuteNonQuery();
                sqlcon.Close();
                GridView1.EditIndex = -1;
                bind();

     

    我不知道错在什么地方,请各位帮忙


    蓝色天际
    2010年9月7日 3:47

答案

  • 你好

        你的Cells[1]~Cells[6]都正确吗?也就是GridView的每列都对吗?看看有没有越界。GridView的每列,除了数据库的大对象或是BFile不能显示外,其他都能显示。

        一般越界的情况很容易发生。比如,你自己定义的GridView列,可能忽略了某个列。


    1+1=The World >>> BLOG=http://blog.csdn.net/liuning800203 >>> Email=liuning800203@hotmail.com
    • 已编辑 0_1_TheWorld 2010年9月12日 14:32 补充
    • 已标记为答案 Mog Liang 2010年9月14日 7:15
    2010年9月12日 14:31

全部回复

  • 数据库结构为

    STUD_ID CHAR(10) PRIMARY KEY,
    STUD_NAME NVARCHAR(10) NOT NULL,
    STUD_GENDER NCHAR(4),
    STUD_ADDRESS NVARCHAR(40),
    STUD_TELEPHONE CHAR(20),
    STUD_ZIPCODE CHAR(12),
    STU_MARK DECIMAL(3,0)

    谢谢


    蓝色天际
    2010年9月7日 5:06
  • 请说明VS所报错误或你所遇到的问题。

    2010年9月7日 7:58
  • 你好,

    是不是字符串超长了?


    Mog Liang
    2010年9月8日 6:58
  • 加个判断吧。。。初始化的时候这个RowIndex估计是-1

      if (e.RowIndex > -1)
                {
                    BindingService bs = new BindingService();
                    int id = 0;
                    int.TryParse(gvBinding.DataKeys[e.RowIndex].Value.ToString(), out id);

                    if (id > 0)
                    {
                        BindingBaseEntity entity = bs.Get(one => one.ID == id);
                        bs.DeleteObj(entity);
                        BindGrid();
                    }

            }

    2010年9月8日 9:37
  • 可能是某一个参数的长度超过了数据库中设置的最大长度
    本帖内容仅供参考,没有任何保证. This post is for reference only, without any warranty.
    2010年9月12日 7:11
    版主
  • 你好

        你的Cells[1]~Cells[6]都正确吗?也就是GridView的每列都对吗?看看有没有越界。GridView的每列,除了数据库的大对象或是BFile不能显示外,其他都能显示。

        一般越界的情况很容易发生。比如,你自己定义的GridView列,可能忽略了某个列。


    1+1=The World >>> BLOG=http://blog.csdn.net/liuning800203 >>> Email=liuning800203@hotmail.com
    • 已编辑 0_1_TheWorld 2010年9月12日 14:32 补充
    • 已标记为答案 Mog Liang 2010年9月14日 7:15
    2010年9月12日 14:31