private void shanchu()
        {
            string ID = "";
            string sql = "Select * from StudentID";
            foreach (DataGridViewRow dgvr in dataGridView1.SelectedRows)
            {
                ID = ID + dgvr.Cells["Column1"].Value + ",";
            }
            ID = ID.Substring(0, ID.Length - 1);
            string SQL="DELTE * From StudentID where ID in ("+ID+");";
            SqlConnection sqlcon = new SqlConnection("server=.;database=Accp;Uid=sa;pwd=123456");
            sqlcon.Open();
            SqlCommand sqlcom = new SqlCommand(sql, sqlcon);
            int deleteRes = sqlcom.ExecuteNonQuery();
            sqlcon.Close();
            if (deleteRes > 0)
            {
                MessageBox.Show("删除成功!");
            }
            else
            {
                MessageBox.Show("删除失败!");
            }

解决方案 »

  1.   

    string SQL="DELTE * From StudentID where ID in ("+ID+");";
    没看懂。。
      

  2.   

    string SQL="DELTE * From StudentID where ID in ("+ID+");";
    Sql语句写错了:
    正确写法,
    string SQL="DELETE From StudentID where ID in ("+ID+");";
      

  3.   

    F11单步
    ID+=""
    ID =ID.EndsWith(",")? ID.Substring(0, ID.Length - 1):ID;
    if(!string.IsNullOrEmpty(ID))
    {
    string SQL="DELTE From StudentID where ID in ("+ID+");";
    }
      

  4.   

    还是不对! ID = ID.Substring(0, ID.Length - 1);
    错误提示在这!
       Length cannot be less than zero.
    Parameter name: length
      

  5.   

    第一个问题,楼上已经给你找出来了,语法问题。第二个,ID = ID.Substring(0, ID.Length - 1);
    可能是你ID的Length 长度-1引起的,可能是你的长度不够
      

  6.   

    ID就一个值为什么还用in呢直接=多么简单呢
      

  7.   

    string SQL = "DELETE StudentID where ID in ("+ID+")";    
      

  8.   

    不对吧  应该不了一个 
    foreach (DataGridViewRow dgvr in dataGridView1.SelectedRows)
      {
      ID = ID + dgvr.Cells["Column1"].Value + ",";
      }
    ID+=dgvr.Cells["Column1"].Value;这样写好看些
      

  9.   

    http://blog.csdn.net/yanjiaye520/archive/2010/11/30/6046304.aspx
    给个链接给你参考下!
      

  10.   

    DELETE 的错误就不说了,可能是你的失误。那个-1,之前ID的值也许-1后,可能等于0,那就不存在了。
      

  11.   

    第二个,ID = ID.Substring(0, ID.Length - 1);
    可能是你ID的Length 长度-1引起的,可能是你的长度不够是这样的!ID = ID + dgvr.Cells["Column1"].Value + ",";
    substring 取的应该是Value后面这个字符串的值 ",";我现在拼接成我要删除1;那么就要去掉,号,所以用上substring;