一张数据表Products 其中三个字段,id(int)自增,name(vachar(100)),picture(container类型)。现在要图片插入到picture 字段。
string  connectString = "DRIVER={DataDirect 32-BIT SequeLink 5.5};Server=localhost;DataBase=DataBaseName;uid=userName;pwd=123456;";
string cOdbcConnection conn = new OdbcConnection(connectString);
conn.Open();byte [] productPic ;//图片假设已经转化成二进制格式,并且已赋值
string sql = string.Format("INSERT INTO products (name,picture) ('AAAA', PutAs( ‘"+ productPic +"’ ,'JEPG'   )");
//PutAs 是Filemaker数据库的函数,作用是把插入变量转化成可以图片格式,以便数据库识别。PutAs(‘插入变量’,‘JEPG’)。OdbcCommand command = new OdbcCommand(sql,conn); //conn 连接值存在。
commad.ExecuteNoQuery();conn.Close();
现在问题是图片可以插入数据库(untitled.jpg),但是数据不对,打开是空的。如果不使用filemaker自带的函数 PutAs转化,插入到数据库是System.Byte[];那么插入Filemaker 数据库container 格式在C#里要什么数据类型(不是二进制的话)?

解决方案 »

  1.   

    没用过这个数据库哦~~~
    不过如果是Byte[]数据的话,也可以转换成图片呀[align=center]*************************************************
    本内容使用CSDN小秘书回复
    每天回帖即可得10分可用分!
    *************************************************[/align]
      

  2.   

    http://www.cnblogs.com/tuyile006/archive/2007/01/08/614718.html
      

  3.   

    楼主现在插入的不是一般的数据库 是Filemaker啊?
      

  4.   


    你说的这个是在插入到sql sever 中,这种方法在Filemaker中没有用。 你这种方法在mysql 数据库也是好用的。
    不过还是要谢谢你。
      

  5.   

    插入前数据是否正确
    检查字段数据长度
    http://help.filemaker.com/app/answers/list/kw/insert%20photo
      

  6.   


    同样的数据可以插入到Mysql中。
    这个字段可以存储16M大小的图片。
      

  7.   

    http://www.filemaker.com/support/product/docs/fmp/fm11_odbc_jdbc_guide_en.pdf
    大家如果有兴趣的可以看看这个  具体插入在42页 用C#试试看能不能正确的插入
    GetAs(columnname,'JPEG')  PutAs(columnname,'JPEG') 
      

  8.   

    这个问题现在已经解决了。
    原因在于使用OBDC后,sql的占位符必须用? 。
    正确的代码应该是这样写的string  connectString = "DRIVER={DataDirect 32-BIT SequeLink 5.5};Server=localhost;DataBase=DataBaseName;uid=userName;pwd=123456;";
    string cOdbcConnection conn = new OdbcConnection(connectString);
    conn.Open();byte [] productPic ;//图片假设已经转化成二进制格式,并且已赋值
    string sql = string.Format("INSERT INTO products (name,picture) ('AAAA', PutAs( ? ,'JEPG'   )");
    //1)PutAs 是Filemaker数据库的函数,作用是把插入变量转化成可以图片格式,以便数据库识别。PutAs(‘插入变量’,‘JEPG’)。
    //2)特别占位符要用问号 "?"OdbcCommand command = new OdbcCommand(sql,conn); //conn 连接值存在。
     OdbcParameter param = new OdbcParameter();// 新建一个参数
     param.OdbcType = OdbcType.Image; // 参数设置为 Image类型
     param.Value = productPie;         // 给参数赋值
     command.Parameters.Add(param);   //在命令中添加参数
     command.ExecuteNonQuery();   //执行命令conn.Close();
      

  9.   

    我装的是fmp_trial_fm_11.0.2.220.exe, 在ODBC设置过程中,在最后的连接测试阶段看到的驱动信息是"FileMaker ODBC ドライバ (32-bit) 11.2.70.0",
    那么链接字符串是不是该改成如下啊?
    string  connectString = "DRIVER={FileMaker ODBC ドライバ (32-bit) 11.2.70.0};
    Server=localhost;DataBase=DataBaseName;uid=userName;pwd=123456;";
    string cOdbcConnection conn = new OdbcConnection(connectString);
    conn.Open();还有DataBase是不是数据库的名字啊?还是ODBC配置时指定的数据源名字啊?
      

  10.   

    真正作filemaker 有2个星期了,这个问题还没碰到过
      

  11.   

    filermaker对大文本,图形,多媒体 处理的很出色