OleDbCommand mycmd = new OleDbCommand(@"INSERT INTO user(ImageName,ImageByte) VALUES ('"+ fileName +"',@photo1)", myConn);
检查了好久,还是出现insert语句错误。

解决方案 »

  1.   

    应该错误在@photo1上。你最好不要直接写进去。
    弄个string sql = "INSERT INTO user(ImageName,ImageByte) VALUES ('"+ fileName +"',@photo1";出来,然后断点看sql到底是不是你要的那个执行语句。
      

  2.   

    @photo1为参数,这是参数化sql语句,你需要给参数的值。
      

  3.   

                     cmd.CommandText = "insert into T_ComponentType(ComponentType) values(@ComponentType)";
                    cmd.Parameters.Add("@ComponentType", OleDbType.WChar, 50).Value = TextField1.Text;
                    result = cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                    con.Close();
      

  4.   

    OleDbCommand mycmd = new OleDbCommand(@"INSERT INTO user(ImageName,ImageByte) VALUES ('"+ fileName +"',@photo1)", myConn);
    对于上面的代码,是否给@photol变量赋值?赋值如下:mycmd.Parameters.Add("@photol", OleDbType.WChar, 50).Value = TextField1.Text;
      

  5.   

    支持二楼的
    SqlParameter goodsName = new SqlParameter("@GoodsName", SqlDbType.VarChar,50);
    Sql语句中也是写 goodsName 呢。不用加"号了
    建议楼主看看 SqlParameter的用法
      

  6.   


    OleDbCommand mycmd = new OleDbCommand(@"INSERT INTO user(ImageName,ImageByte) VALUES ('"+ fileName +"',@photo1)", myConn);
     
    mycmd.Parameters.Add("@photo1",'值');
    你用的是SQL参数化查询,需要在执行语句前,添加参数的值。
      

  7.   

    到网上去搜索 binary 数据存储
      

  8.   

    //将文件内容读取到byte中
      FileStream fs = new FileStream( fileName, FileMode.Open, FileAccess.Read );  byte[] imageData = new Byte[fs.Length];  fs.Read( imageData, 0, (int)fs.Length );  fs.Close();
    //参数赋值
    mycmd.Parameters["@photo1"].Direction = ParameterDirection.Input;mycmd.Parameters["@photo1"].Value = imageData;
      

  9.   

    byte[] byteImage = dataImageHelper.GetBeytImagebyPath(dig.FileName);
                    //获取文件名
                    FileInfo fileInfo = new FileInfo(dig.FileName);
                    string fileName = fileInfo.Name;
                    OleDbCommand mycmd = new OleDbCommand("insert into 用户照片(ImageName,ImageByte) values ('" + fileName + "',@photo1)", myConn2);
                    //@"INSERT INTO localdb(ImageName,ImageByte) VALUES ('" + fileName + "',@photo1)where Mac='" + textBox1.Text + "'", myConn2);
                    mycmd.CommandType = CommandType.Text;
                    OleDbParameter prmPersonImageType = new OleDbParameter("@photo1", OleDbType.VarBinary);
                    prmPersonImageType.Value = byteImage;
                    mycmd.Parameters.Add(prmPersonImageType).Value = byteImage;
                    mycmd.ExecuteNonQuery();
                    MessageBox.Show("信息添加成功!");user是关键字,句子本身没什么问题 
    感觉access的数据库最好用中文做表名。
    谢谢各位啦!