我需要创建C#.NET解决方案直接从数据库查看.docx文件,而无需在硬盘上写入.什么是最可行的方法?
一种选择是将docx文件转换为.mht格式,并将其作为blob类型保存在数据库中.但我找不到从数据库中直接查看它的方法.
另一种方法是将docx文件转换为.jpg文件,可以使用.NET中的图片框控件直接从数据库中查看.采取的方法是首先将docx转换为.mdi,然后转换为.tiff格式(使用Microsoft Image Writer)并转换为jpeg.但这涉及多个IO操作,这降低了解决方案的效率和可靠性.
如果有人知道如何改进上述选项或任何新想法,我们将非常感激.提前致谢 :)
我使用mysql/C++连接器连接到mysql数据库.我有一些复杂的数据结构,所以我需要序列化这些并保存在数据库中.
我试过以下的东西.
vector<int> vectorTest(10,100);
istream *blob = NULL;
ostringstream os;
int size_data = sizeof(vector<int>);
blob = new istringstream((char*)&vectorTest, istringstream::in | istringstream::binary);
string qry = "INSERT INTO vector(id,object) VALUES (?,?)";
prep_stmt = con->prepareStatement(qry);
prep_stmt->setInt(1,1);
prep_stmt->setBlob(2,blob);
prep_stmt->execute();
Run Code Online (Sandbox Code Playgroud)
我刚刚尝试了一个小例子.但是,矢量对象未被保存.
或者,我可以使用以下方法.
ostringstream os;
int size_data = sizeof(vector<int>);
os.write((char*)&vectorTest, size_data);
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何将输出流重定向到输入流,因为setBlob()方法需要一个istream作为输入参数.
我可以知道如何使这些例子有效吗?如果我的方法不正确,任何人都可以提供代码示例或改进给定的代码段吗?非常感谢您的即时回复.
谢谢
我使用Visual Studio中的类库项目在C++中创建了一个dll.我需要从C#应用程序中调用dll中的方法.
我知道有2个approches.一种是将dll项目引用添加到C#项目或使用DllExport来导出方法.但是当我尝试两种方式时,在运行时调用dll方法时总是会出现以下错误.
TestClient.exe中发生未处理的"System.BadImageFormatException"类型异常附加信息:尝试加载格式不正确的程序.(HRESULT异常:0x8007000B)
我可以知道如何避免这个问题吗?
提前致谢!