当前位置:编程学习 > C#/ASP.NET >>

谢谢大侠们帮我看下这段删除代码错哪了!

  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("删除失败!");
            } --------------------编程问答-------------------- string SQL="DELTE * From StudentID where ID in ("+ID+");";
没看懂。。 --------------------编程问答-------------------- string SQL="DELTE * From StudentID where ID in ("+ID+");";
Sql语句写错了:
正确写法,
string SQL="DELETE From StudentID where ID in ("+ID+");"; --------------------编程问答--------------------
引用 2 楼 adensky 的回复:
string SQL="DELTE * From StudentID where ID in ("+ID+");";
Sql语句写错了:
正确写法,
string SQL="DELETE From StudentID where ID in ("+ID+");";

(⊙v⊙)嗯
同2楼 --------------------编程问答-------------------- --------------------编程问答-------------------- 同意二楼! --------------------编程问答-------------------- 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+");";
} --------------------编程问答-------------------- 我是菜鸟我也看出来了 --------------------编程问答-------------------- 还是不对! ID = ID.Substring(0, ID.Length - 1);
错误提示在这!
   Length cannot be less than zero.
Parameter name: length --------------------编程问答-------------------- 第一个问题,楼上已经给你找出来了,语法问题。

第二个,ID = ID.Substring(0, ID.Length - 1);
可能是你ID的Length 长度-1引起的,可能是你的长度不够
--------------------编程问答-------------------- 这个删除语句太强悍了,哈哈哈 --------------------编程问答-------------------- 少写了一个E DELETE --------------------编程问答-------------------- ID就一个值为什么还用in呢直接=多么简单呢 --------------------编程问答-------------------- string SQL = "DELETE StudentID where ID in ("+ID+")";     --------------------编程问答--------------------
引用 12 楼 teng_s2000 的回复:
ID就一个值为什么还用in呢直接=多么简单呢

不对吧  应该不了一个 
foreach (DataGridViewRow dgvr in dataGridView1.SelectedRows)
  {
  ID = ID + dgvr.Cells["Column1"].Value + ",";
  }
ID+=dgvr.Cells["Column1"].Value;这样写好看些
--------------------编程问答-------------------- http://blog.csdn.net/yanjiaye520/archive/2010/11/30/6046304.aspx
给个链接给你参考下! --------------------编程问答-------------------- --------------------编程问答-------------------- DELETE 的错误就不说了,可能是你的失误。

那个-1,之前ID的值也许-1后,可能等于0,那就不存在了。 --------------------编程问答-------------------- 第二个,ID = ID.Substring(0, ID.Length - 1);
可能是你ID的Length 长度-1引起的,可能是你的长度不够

是这样的!ID = ID + dgvr.Cells["Column1"].Value + ",";
substring 取的应该是Value后面这个字符串的值 ",";我现在拼接成我要删除1;那么就要去掉,号,所以用上substring;
--------------------编程问答-------------------- 哪位大侠帮忙下啊!
--------------------编程问答--------------------
引用 17 楼 maxall0 的回复:
DELETE 的错误就不说了,可能是你的失误。

那个-1,之前ID的值也许-1后,可能等于0,那就不存在了。


用TrimEnd
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,