using (SqlConnection con = new SqlConnection(contor))
 {
 con.Open();
 lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
                        "  CA01 where CA01.A0188=:CA01.A0188";
                    ///cmd命令
                    SqlCommand   cmd = new SqlCommand(lastStr, con);
cmd.Parameters.AddWithValue(":CA01.A0188", field.Value);
using (SqlDataReader datarader = cmd.ExecuteReader())
{
}

解决方案 »

  1.   

    select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
                            "  CA01 where CA01.A0188=':CA01.A0188'"
      

  2.   

    你的查询语句有问题呀,SELECT * FROM TB WHERE NAME='FDAF'
    字符型要用''引起来
      

  3.   

    http://topic.csdn.net/u/20091031/20/381a665f-b219-4f39-8548-7dda42b4ac10.html非常感谢
      

  4.   

    断点跟踪一下,看看执行的SQL语句有什么问题。是不是传递参数的问题。
      

  5.   


    select 
    CA01.A_id as '变动次数',
    CA01.A0188 as '人员id' from  CA01 where CA01.A0188=:'Y人事变动主表.人员id' cmd.Parameters.AddWithValue(field.FieldName, field.Value);
      

  6.   

    select 
    CA01.A_id as '变动次数',
    CA01.A0188 as '人员id' from  CA01 where CA01.A0188=':Y人事变动主表.人员id'兄台引号打错位置了
      

  7.   

    select 
    CA01.A_id as '变动次数',
    CA01.A0188 as '人员id' from  CA01 where CA01.A0188=':Y人事变动主表.人员id'" CA01 where CA01.A0188='@A'";
    .Parameters.AddWithValue("@A", field.Value);
      

  8.   


    select 
    CA01.A_id as '变动次数',
    CA01.A0188 as '人员id' from  CA01 where CA01.A0188 =':Y人事变动附表.人员id'
    ':' 附近有语法错误。
      

  9.   


    select 
    CA01.A_id as '变动次数',
    CA01.A0188 as '人员id' from  CA01 where CA01.A0188=':Y人事变动主表.人员id'
      

  10.   

    select 
    CA01.A_id as '变动次数',
    CA01.A0188 as '人员id' from  CA01 where CA01.A0188 =':Y人事变动附表.人员id'你这后面是一个值吗???
    如果是一个值应该没错的
      

  11.   


    select 
    CA01.A_id as '变动次数',
    CA01.A0188 as '人员id' from  CA01 where CA01.A0188 =':Y人事变动附表.人员id'
    select 
    CA01.A_id as '变动次数',
    CA01.A0188 as '人员id' from  CA01 where CA01.A0188=':Y人事变动主表.人员id'哪里不一样吗??
      

  12.   

    嘿嘿 你这个 := 是Delphi的赋值吧
      

  13.   

     "CA01 where CA01.A0188=@A"; 
    .Parameters.AddWithValue("@A", field.Value); 
      

  14.   

    --试试
    using (SqlConnection con = new SqlConnection(contor))
     {
     con.Open();
     lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
                            "  CA01 where CA01.A0188='@name'";
                        ///cmd命令
                        SqlCommand   cmd = new SqlCommand(lastStr, con);
    cmd.Parameters.AddWithValue("@name", field.Value);
    using (SqlDataReader datarader = cmd.ExecuteReader())
    {
    }
      

  15.   


    lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
                            "  CA01 where CA01.A0188=':CA01.A0188'";
     cmd.Parameters.AddWithValue(":CA01.A0188", 2);
    lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
                            "  CA01 where CA01.A0188=':yyyy'";
     cmd.Parameters.AddWithValue(":yyyy", 2);
    第一个不错
    第二个错 
    这是为什么
      

  16.   

    lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from CA01 where CA01.A0188=@A";
    SqlCommand   cmd = new SqlCommand(lastStr, con);
    cmd.Parameters.AddWithValue("@A", field.Value);
    using (SqlDataReader datarader = cmd.ExecuteReader())
    {}
      

  17.   

    是ORACLE的语句吧。好像ORACLE在SQL里使用参数是这样的:
    string lastStr=@"
        SELECT
            CA01.A_ID AS '变动次数',
            CA01.A0188 AS '人员ID'
        FROM CA01
        WHERE CA01.A0188=:A0188"; 
    cmd.Parameters.AddWithValue(":A0188", field.Value);
    using (SqlDataReader datarader = cmd.ExecuteReader())
    {
    }
      

  18.   

    可能真是如梦说的那样
    你多次调用 cmd.Parameters.AddWithValue 但是没清空 cmd.Parameters.Clear() lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
                            "  CA01 where CA01.A0188='@CA01.A0188'";
     cmd.Parameters.AddWithValue("@CA01.A0188", 2);
    lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
                            "  CA01 where CA01.A0188='@yyyy'";
     cmd.Parameters.AddWithValue("@yyyy", 2);
      

  19.   

    sql语句使用带参数,那么参数是需要使用@去标识的,而不是使用冒号,冒号表示参数是hibernate的用法(包括nhibernate),
    就如同mysql的参数表示是问号而不是冒号,
    也就是你的sql需要使用类似如下方式:string sql = "select * from Table where A=@A";
    SqlCommand cmd = new SqlCommand(sql, con); 
    cmd.Parameters.AddWithValue("A", 2);
      

  20.   

    用的是oracle吧
     select CA01.A_id as '变动次数'   这里有问题
    改成 select CA01.A_id as "变动次数"
    就可以了
    as后边用""
    但是where什么的值的后边比如 where id = '1'要用''
    这个以前也搞死我了
      

  21.   

    select
    CA01.A_id as '变动次数',
    CA01.A0188 as '人员id' from  CA01 where CA01.A0188=':Y人事变动主表.人员id' 
      

  22.   

    :CA01.A0188,SQL的大数据写操作是这样吗?Oracle的吧
      

  23.   

    MSSQL 参数类似:@param
    oracle参数类似::param
    ...
      

  24.   

    lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
                            "  CA01 where CA01.A0188=':CA01.A0188'";