就是SQL语句有问题 呀  但是在V2010以前的编译器都可以 你可试试

解决方案 »

  1.   


    这个最普通的用户登陆界面 都整了半天 后来我换到VS2010就可以   但不知道怎么修改  string connectionString = Properties.Settings.Default.UserDatabaseConnectionString;
                   
                 SqlConnection conn = new SqlConnection(connectionString);
                 string sql = string.Format("select User,Pwd from UserTable WHERE User='{0}'and Pwd='{1}'",textBox1.Text,textBox2.Text);
               
                    SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
                DataTable table=new DataTable ();
                adapter.Fill(table);
                
                    if (table.Rows.Count>0)
                    {                    MessageBox.Show("OK");
                    }
                    else
                    {
                        MessageBox.Show("用户名不存在或密码错误!");
                    }
                        
      

  2.   

    检查下连接字符串,sql server的配置去掉try catch,贴出丢出的异常的具体信息。
      

  3.   

    where语句和visual studio的版本没有任何关系,断点调试,复制生成的sql语句到sql server中,执行看看结果
      

  4.   

    设置断点。跟踪Sql,拷贝Sql到管理器里执行。
      

  5.   


    问题是我在另一个登陆界面里也遇到了 一样的问题 同样的SQL语句  VS2012就不可以 VS2010则可以
    如下列这段代码  在VS2010 count 就有值  VS2012无论如何 都不对             SqlConnection conn = new SqlConnection(connectionString);
                 string sql = string.Format("select User,Pwd from UserTable WHERE User='{0}'and Pwd='{1}'",textBox1.Text,textBox2.Text);
                 SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
                 DataTable table=new DataTable ();
                adapter.Fill(table);
                
                    if (table.Rows.Count>0)
                    {                    MessageBox.Show("OK");
                    }
                    else
                    {
                        MessageBox.Show("用户名不存在或密码错误!");
                    }
      

  6.   


    在VS2012编译器里 只要后面有WHERE子句 几乎都不成功  放在VS2010即有影响的行数  
    真是奇怪了 
      

  7.   


    SQL语句在VS2010里面没任何异常 可返回影响 行数   就是VS2012编译器里有问题  现在就是说 VS2012到底是不是改变了什么我们不知道的内容
      

  8.   

    你这个代码是复制出来的?
    and前少个空格吧 User='{0}'and Pwd= ,如果你代码里是这样,肯定有错了,你细查一下。
     
     string sql = string.Format("select User,Pwd from UserTable WHERE User='{0}'  and Pwd='{1}'",textBox1.Text,textBox2.Text);
      

  9.   


    有空格   我在另两台电脑用VS2010都有受影响行数  就是VS2012里遇到的问题     公司的电脑和自己的XP装的VS2010都OK
     
    VS2012出现在问题 现在真是郁闷 就是不知道 VS2012到底改了什么东西
      

  10.   

    你的sql语句中空格重新输一下,有时在别的输入法中空格字符有问题的,我遇到过,在代码里说有错误,放在sql数据库查询又正常。还有语句中先直接用数据,不要用参数,测试一下。看代码能不能通过。应该不会是VS2012的问题
      

  11.   


    先谢谢你  不加where子句都能读取到表数据的  这个问题 困扰我N久  真的搞不懂
      

  12.   

    where肯定不会有问题,我觉还是你语句中变量,字符等有问题,直接用数据测试一下,加一个数据条件测试,
      

  13.   


    公司的电脑用的是VS2010 我自己的笔记本也是VS2010 是XP系统  自己的台式机装的是VS2012遇到这问题 根据你给方法都检查试了 问题都试了 就是不见效果 狂晕 严重怀疑VS2012
      

  14.   

    VS的版本与SQL有关联么? 不用怀疑VS 只需要找自己的问题就可以了。
    别入参数直接写SQL执行, 一步步排除就是了。总之肯定是你的问题,不是VS的问题。
      

  15.   

    SQL语句只与数据库有关,绝对不会因为编译器而不同。编译器只是把sql语句传给数据库而已,仅起到传递作用。很简单的解决办法:
    在SQL语句构建完毕后的代码行,设置断点,获取SQL语句的实例值,复制粘贴到数据库中执行。结果正确就说明程序没错;否则就是程序构建SQL出错。
    没有其他情况。
      

  16.   

    始终是NULL 实在是不知道这个SQL语句哪有问题  VS2010就正常
      

  17.   


    我试了 只要带where子句筛选 一定有问题   不知道大侠是不是也在用VS2012 可以一试 
      

  18.   

    你能把你代码中有问题的where语句贴出来,看一下
      

  19.   

    SQL语句是数据库的语法
    数据库不同,SQL语句也会略有区别
    但是跟VS版本是一点关系都没有的
      

  20.   

    WHERE User='{0}'and
    没加空格
      

  21.   


    不是空格问题  现在就是不知道到底是区别在哪里  只要用WHERE子句筛选 均不行  
      

  22.   

    应该与where语句无关的,如果SQL语句没有错误的话。真解决不了,那你还是用VS2010吧;
      

  23.   

    你用碗和脸盆装米饭 但是你不能说你吃的米饭会因为脸盆变成肉丝,sql就是sql 怎么会随vs版本不同而不同呢
      

  24.   


    我意思就是SQL2012与VS2012是不是不协调 
     算了 我还是用VS2010
      

  25.   


    我意思就是SQL2012与VS2012是不是不协调 
     算了 我还是用VS2010肯定不存在这种问题ExecuteNonQuery   执行存储过程.
    [1].存储过程有返回值(传出参数)
        (1).把数据库中受影响的行数赋给返回值,这是得到的返回值是受影响的函数(大于或等于0的整数).
        (2).把某个值赋给返回值.
    [2].存储过程没有返回值
        执行成功后返回 -1.
    (没有返回值的存储过程理应 返回 受影响的行数 (执行 增删改) 但是.但我们在ado.net中执行存储过程的时候,dotnet 自动为给了存储过程一个默认值:set nocount on;
    所以给我们的感觉是执行存储过程默认返回 -1  )另外 你打印你vs2012读取出来的Properties.Settings.Default.SchoolConnectionString字符串看看和2010的一样,看看是否是哪里配置出现了问题
      

  26.   

    catch
     { }
    去掉你的try-catch,你就知道报什么错了,空catch是非常不推荐的,除非你确定那个异常可以不作处理
      

  27.   

    把sql 打印出来 单独执行下看看
      

  28.   

    WHERE User='{0}'and
    WHERE User='{0}' and
    仔细看到底啥区别,还说不是空格问题
    饭吃噎着了,不要怪饭盆啊
      

  29.   

    断点跟,把SQL语句复制出来,放客户端里执行,看到底怎么了