UPDATE  tbl_user SET   u_user = '伟大又', u_code = '优秀'  WHERE  u_id = 1
在 sql server mse下可以:高手请看,这是为什么?

解决方案 »

  1.   

    在sql server mse下的图片:
      

  2.   

    这要看你在C#中是如何传递进SqlCommand之类的咯。
    一条语句只要在数据库的查询中可以执行,如果准确的传递进来就肯定可以执行。
      

  3.   

    呵呵。你在一个cmd对象中执行了两次指令啊?是不是这样?
      

  4.   

    只能多定义几个cmd对象的实例了,是吗?
      

  5.   

    我用过是没关系的。
    并且我刚才还测试类似你这样的一段代码,是没问题的。我觉得真的很奇怪,你试着用:SQl Profile来监视一下由这个C#程序传递给SQL的SQL语句到底是什么。
    然后你手工执行一下看看。
      

  6.   

    换我的代码试下吧,我也是只用了一个cmd变量,然后测试了3种Execution的方法:
                SqlConnection mysqlconnection = new SqlConnection("Server=Alpha;database=DemoDb;uid=sa;pwd=");
                SqlCommand mysqlcommand = mysqlconnection.CreateCommand();
                mysqlcommand.CommandText = "Select * from myDemoDb";
                mysqlconnection.Open();            //1.ExecuteReader
                SqlDataReader mysqldatareader = mysqlcommand.ExecuteReader();
                while (mysqldatareader.Read())
                    Console.WriteLine(mysqldatareader[0].ToString());
                mysqldatareader.Close();            //2.ExecuteNonQuery
                int affectrows = mysqlcommand.ExecuteNonQuery();
                Console.WriteLine(affectrows);            //3. ExecuteScalar
                Console.WriteLine(mysqlcommand.ExecuteScalar());            mysqlconnection.Close();
      

  7.   

    或者可以关注下:update or insert的时候cmd的CommandType是不是需要变化?~