......
delete from TSMS  where MobileID in ('" + System.Convert.ToString(dt.Columns["MobileID"]) + "')
------------------------------------------------------------------------------------
为什么这句delete语句不能执行,但也没有抱错
(dt是个Datatable)

解决方案 »

  1.   

    dt.Columns["MobileID"]  这个取值有问题
    dt.Rows[rowNumber]["Column's name"]
      

  2.   

    不好意思,说错了
    你的单引号“‘”用你这种写法就是  delete table where id in ('你得到的id')
      

  3.   

    首先,System.Convert.ToString(dt.Columns["MobileID"])
    并不会产生MobileID地记录集,因此也不会达到你的效果
      

  4.   

    所有的帖子都可以看到 Knight94(愚翁) ,这位朋友是在狂赚分啊,从你那也学了好多。呵呵
      

  5.   

    Knight94(愚翁) 
    --------------------------------------------
    遍历代码应该怎么写呀
      

  6.   

    to 遍历代码应该怎么写呀?const string UPDATE_FORMAT = "delete from TSMS where MobileID in ('{0}');
    foreach( DataRow dr in dt.Rows )
    {
         string strQuery = string.Format( UPDATE_FORMAT, dr["MobileID"] );
         //Execute sql command using "strQuery"
    }
      

  7.   

    dt.Columns["MobileID"]是一个DataCloumn的集合,而不是SQL中的集合
    概念搞错了
    一条一条的删
    可以这样
    System.Text.StringBuilder s=new System.Text.StringBuilder();
    for(int i=0;i<dt.Rows.Count;i++)
    {
        s.Append(";delete from TSMS  where MobileID='" + System.Convert.ToString(dt.Rows[i]["MobileID"]) + "'");
    ")
    if(s.Length>0) s.Remove(0,1);
    cm.ExcuteNonQuery(cn,CommandType.Text,s.ToString());
    cm,cn分别是数据命令对象和数据连接对象
    }
      

  8.   

    写错了,应该是
    System.Text.StringBuilder s=new System.Text.StringBuilder();
    for(int i=0;i<dt.Rows.Count;i++)
    {
        s.Append(";delete from TSMS  where MobileID='" + System.Convert.ToString(dt.Rows[i]["MobileID"]) + "'");
    ")
    }
    if(s.Length>0) s.Remove(0,1);
    cm.ExcuteNonQuery(cn,CommandType.Text,s.ToString());
    //cm,cn分别是数据命令对象和数据连接对象
      

  9.   

    delete from TSMS  where MobileID in ('" + System.Convert.ToString(dt.Columns["MobileID"]) + "')?????????
    '" + System.Convert.ToString(dt.Columns["MobileID"]) + "'你要确定此字符串的最终结果是
    '111','2222','3333'这样的格式.否则很可能会出错的.
    你用断点测试一下的值吧.
      

  10.   

    System.Text.StringBuilder s=new System.Text.StringBuilder();
    for(int i=0;i<dt.Rows.Count;i++)
    {
        s.Append(";delete from TSMS  where MobileID='" + System.Convert.ToString(dt.Rows[i]["MobileID"]) + "'");
    ")
    }
    if(s.Length>0) s.Remove(0,1);
    cm.ExcuteNonQuery(cn,CommandType.Text,s.ToString());
    ----------------------------------------------------------
    这个好象不对,大家帮忙看看
      

  11.   

    string idlist = "";
    System.Text.StringBuilder s=new System.Text.StringBuilder();
    for(int i=0;i<dt.Rows.Count;i++)
    {
       if (i != dt.Rows.Count-1)
       idlist += System.Convert.ToString(dt.Rows[i]["MobileID"] + ",";
    }string s = "delete from TSMS  where MobileID in ("idlist")";//如果mobileid是int
    cm.ExcuteNonQuery(cn,CommandType.Text,s.ToString());
    试试这样能效率高点
      

  12.   

    string idlist = "";
    System.Text.StringBuilder s=new System.Text.StringBuilder();
    for(int i=0;i<dt.Rows.Count;i++)
    {
       if (i != dt.Rows.Count-1)
       idlist += System.Convert.ToString(dt.Rows[i]["MobileID"] + ",";
    }string s = "delete from TSMS  where MobileID in ("idlist")";//如果mobileid是int
    cm.ExcuteNonQuery(cn,CommandType.Text,s.ToString());
    试试这样能效率高点
    --------------------------------------------------------------------------
    这个好象不对,大家帮忙看看
      

  13.   

    if(s.Length>0)
    {
       s.Remove(s.Length-1,1);
       string str = "delete from TSMS  where MobileID in ("+s.ToString()+")";//如果mobileid是int
       cm.ExcuteNonQuery(cn,CommandType.Text,str);
    }
      

  14.   

    string idlist = "";
    System.Text.StringBuilder s=new System.Text.StringBuilder();
    for(int i=0;i<dt.Rows.Count;i++)
    {
       if (i != dt.Rows.Count-1)
       idlist += System.Convert.ToString(dt.Rows[i]["MobileID"] + ",";
    }string s = "delete from TSMS  where MobileID in ("idlist")";//如果mobileid是int
    cm.ExcuteNonQuery(cn,CommandType.Text,s.ToString());
    试试这样能效率高点
    --------------------------------------------------------------------------
    这个好象不对,大家帮忙看看
      

  15.   

    string idlist = "";
    System.Text.StringBuilder s=new System.Text.StringBuilder();
    for(int i=0;i<dt.Rows.Count;i++)
    {
       if (i != dt.Rows.Count-1)
       idlist += System.Convert.ToString(dt.Rows[i]["MobileID"] + ",";
    }string s = "delete from TSMS  where MobileID in ("idlist")";//如果mobileid是int
    cm.ExcuteNonQuery(cn,CommandType.Text,s.ToString());
    试试这样能效率高点
    --------------------------------------------------------------------------
    这个好象不对,大家帮忙看看