一个数据表(A)表里面有10条不一样的数据,在textbox里面输入号码判断A表里面的第一条数据的长度和前几位是否等于textbox里面的号码,如果等于textbox里面的号码,就继续在textbox里面输入号码在判断A表的第二条数据是否数据的长度和前几位是否等于textbox里面的号码,一直这样循环!!

解决方案 »

  1.   

    如果用户输入的必须和数据库中的匹配起来,那还不如改成下拉框,供用户选择不然 可以 like模糊查询
    string sql="select * from Table where Id like '%'"+this.TextBox1.Text+"'%'";
      

  2.   

    不是这样的
    我是要先判断textbox里面的号码前几位是否等于A表的第一条数据,
      

  3.   

    为什么不直接搜索TEXTBOX里输入的值与数据库里相同的数据呢,为什么非要一个一个输入然后一个一个比较呢,你能说下你的具体应用不,是要干什么。
      

  4.   


    CREATE PROCEDURE proname
    @mobile VARCHAR(50), --这个传入已经截取前几位的号码
    @ret INT OUTPUT --传出是否有一样的,不知道楼主到底要做什么,传出你自己需要的东西
    AS
    BEGIN
    SET @ret=0
    select * into #temp from a
    declare @id INT
    DECLARE @count INT
    SELECT @count=COUNT(*) FROM #temp
    WHILE @count> 0
    BEGIN
    select top 1 @id=id FROM #temp
    IF EXISTS (SELECT TOP 1 * FROM #temp WHERE id=@id AND LEFT(mobile,5)=@mobile )--我先设取的是前面5位
    BEGIN
    SET @ret=1--楼主也可以改成获取id
    BREAK
    END
    ELSE
    BEGIN
    set @count=@count-1
    DELETE FROM #temp WHERE id=@id
    CONTINUE
    END

    END
    END
    GO
    我没测试过,不知道里面有没有错
      

  5.   

    我的A表是给商品定一个规则,如果符合就把textbox里面的号码插入另一个表,在进行第二条判断
      

  6.   

    如果是这样,我写的那个把break那段去掉就好了啊
      

  7.   


    CREATE PROCEDURE proname
        @mobile VARCHAR(50), --这个传入已经截取前几位的号码
        @ret INT OUTPUT    --传出是否有一样的,不知道楼主到底要做什么,传出你自己需要的东西
    AS
    BEGIN
        SET @ret=0
        select * into #temp from a
        declare @id INT
        DECLARE @count INT
        SELECT @count=COUNT(*) FROM #temp
        WHILE @count> 0
        BEGIN
            select top 1 @id=id FROM #temp
            IF EXISTS (SELECT TOP 1 * FROM #temp WHERE id=@id AND LEFT(mobile,5)=@mobile )--我先设取的是前面5位
            BEGIN
           --这里写插入另一个表的
            END  
            
        END
    END
    GO