看你的具体写数据库的sql
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

解决方案 »

  1.   

    查看你的sql语句,看是不是和你数据库定义的列数量,名字一样的
      

  2.   

    sql语句我是这样写的,编译能通过 byte[] byteArray = System.Text.Encoding.Default.GetBytes("20133");
     string sql = "insert into users (FingerCode,GongHao) values (" + byteArray + ",'" + name + "')";
      Guan.DBUtility.DbHelperSQL.ExecuteSql(sql);运行时报错:其他信息: 缺少对象或列名,或者对象或列名为空。对于 SELECT INTO 语句,请确保每列均具有名称。对于其他语句,请查找空的别名。不允许使用定义为 "" 或 [] 的别名。请添加名称或单个空格作为别名。 在此上下文中不允许使用名称 "System.Byte"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。
      

  3.   

    你的FingerCode在数据库定义的是什么类型,看下
      

  4.   

    用sqlparameterstring sql = "insert into users (FingerCode,GongHao) values (@FingerCode,'" + name + "')";
    cmd=new sqlcommand(sql,con);
     
    cmd.parameter.addwithvalue("@FingerCode",sqldbtype.binary).value=byteArray ;
     
    con.open();
    cmd.executenonquery();
    con.close();
      

  5.   

    你的FingerCode在数据库定义的是什么类型,看下 数据类型 为:binary(1024)
      

  6.   

    byte[] 需要对应 image 类型的字段
      

  7.   

    用sqlparameter string sql = "insert into users (FingerCode,GongHao) values (@FingerCode,'" + name + "')";
     cmd=new sqlcommand(sql,con);
      
     cmd.parameter.addwithvalue("@FingerCode",sqldbtype.binary).value=byteArray ;
      
     con.open();
     cmd.executenonquery();
     con.close(); ---用此方法解决了,不管字段 是 binary 还是 image 都成功
    谢谢以上朋友们