public List<CM_SendchitInfo> GetLocalList()
        {
                List<CM_SendchitInfo> list = new List<CM_SendchitInfo>();
                string sql = "select * from SmsUNcom_send where state = '0' or sendyorn='0' and sendtime <= Getdate()";
                SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text,sql.ToString());
                while (dr.Read())
                {
                    CM_SendchitInfo cm = new CM_SendchitInfo();
                    cm.SendId = dr.GetInt32(0);
                    cm.SendMobile = dr.GetString(1);
                    cm.SendMsg = dr.GetString(2);
                    cm.SendMsgType = dr.GetInt16(3);
                    cm.SendSendyorn = dr.GetInt16(4);
                    cm.SendState = dr.GetInt16(5);
                    cm.SendTime = dr.GetDateTime(6);                    list.Add(cm);
                    Update();
                }
                return list;
        }
        /// <summary>
        /// 读过之后的数据(0表示待发,1表示已经发过)
        /// </summary>
        public void Update()
        {
            string sql = "update SmsUNcom_send  set sendyorn='1'";  //我想把where id=这里写啥,调用上面的 cm.SendId = dr.GetInt32(0);
            SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql);
        }
这个怎么写?想以上面的sendidID为条件更新!

解决方案 »

  1.   

    你应该在Update()方法里传一个ID参数。
    ]
    public void Update(int IntID)
            {
                string sql = "update SmsUNcom_send  set sendyorn='1' where [ID] =" & IntID.ToString();  //我想把where id=这里写啥,调用上面的 cm.SendId = dr.GetInt32(0);
                SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql);
            }
      

  2.   

    你应该在Update()方法里传一个ID参数。
    ]
    public void Update(int IntID)
            {
                string sql = "update SmsUNcom_send  set sendyorn='1' where [ID] =" & IntID.ToString();  //我想把where id=这里写啥,调用上面的 cm.SendId = dr.GetInt32(0);
                SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql);
            }
      

  3.   

     public List<CM_SendchitInfo> GetLocalList()
            {
                    List<CM_SendchitInfo> list = new List<CM_SendchitInfo>();
                    string sql = "select * from SmsUNcom_send where state = '0' or sendyorn='0' and sendtime <= Getdate()";
                    SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text,sql.ToString());
                    while (dr.Read())
                    {
                        CM_SendchitInfo cm = new CM_SendchitInfo();
                        cm.SendId = dr.GetInt32(0);
                        cm.SendMobile = dr.GetString(1);
                        cm.SendMsg = dr.GetString(2);
                        cm.SendMsgType = dr.GetInt16(3);
                        cm.SendSendyorn = dr.GetInt16(4);
                        cm.SendState = dr.GetInt16(5);
                        cm.SendTime = dr.GetDateTime(6);                    list.Add(cm);
                        Update(cm.SendId );
                    }
                    return list;
            }
            /// <summary>
            /// 读过之后的数据(0表示待发,1表示已经发过)
            /// </summary>
            public void Update(string sendId )
            {
                string sql = "update SmsUNcom_send  set sendyorn='1' where SendId ='"+sendId +"'";              SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql);
            }
      

  4.   

    UPdate方法你应该传一个参数进来..
    public void Update(int sendId)
    {
        string sql = "update SmsUNcom_send  set sendyorn='1'where sendId = "+sendId;
        SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql);}
      

  5.   

           /// <summary>
            /// 读过之后的数据(0表示待发,1表示已经发过)
            /// </summary>
            public void Update(List<CM_SendchitInfo> list)
            {
                string id="(";
                for(CM_SendchitInfo c in list)
                {
                     id+="'"+id+"',";
                }
                id=id.Substring(0,id.Lenght-2);
                string sql = "update SmsUNcom_send  set sendyorn='1' where id in"+id;  //我想把where id=这里写啥,调用上面的 cm.SendId = dr.GetInt32(0);
                SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql);
            }上面的id有很多个SendId 
    不知道你要去的那个。
    如果全部的话就上面那样写。取得所有的id
      

  6.   

    我传上面取出来的值啊,怎么传进去啊:  cm.SendId = dr.GetInt32(0);
    就是这个cm.sendid啊
      

  7.   

    因为是在WHERE里面,所以每次读出一条他都update,所以不用读出全部..也没有必要用LIST做参数..
      

  8.   


    你这个SENDID是我上面的CM的SENDID吗
      

  9.   

    你就直接传cm.sendid进去?
    因为你是放在while里的。
    建议都把那个执行那update方法就放在while外面。
    但你要在while里做一个变量来放ID,如:
    string myid;
    myid = myid + dr.GetInt32(0).ToString() + ",";然后方法里面的sql改成
     string sql = "update SmsUNcom_send  set sendyorn='1' where SendId in (" +  myid + ")";              
      

  10.   

    string myid; 
    myid = myid + dr.GetInt32(0).ToString() + ","; 然后方法里面的sql改成 
    string sql = "update SmsUNcom_send set sendyorn='1' where SendId in (" + myid + ")"; 
    我想用这个方法, 
    用这个,那这个MYID也要传进去吧? 
    update(myid)这样写可以不?
      

  11.   

    修改这个函数:/// <summary>
    /// 读过之后的数据(0表示待发,1表示已经发过)
    /// </summary>
    public void Update(int sendId)
    {
        string sql = "update SmsUNcom_send  set sendyorn='1' where sunId = "+sendId.ToString();  //我想把where id=这里写啥,调用上面的 cm.SendId = dr.GetInt32(0);
        SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql);
    }
    调用Update的代码改为:
    Update(cm.SendId);