将文件保存到MySQL数据库

时间:2012-08-15 19:46:49

标签: c# mysql

我正在使用MySQL数据库开发一个c#项目。我有一个日志文件,我想将此文件存储在数据库中。

我想将实际文件保存到数据库中,但我所看到的是你必须将其编码为字符串或将字节写入字符串并将其放入数据库中,它是如何存储的文件,我以为你可以给命令提供文件路径,并将它存储在数据库中,而不需要在软件中进行所有编码。

如果这有任何区别,则需要从PHP再次检索,但我猜这应该无关紧要。

5 个答案:

答案 0 :(得分:1)

是的,您必须将其编码为字符串或字节以存储文件。另一种方法是存储日志文件位置,而是将日志文件保存在磁盘的某些位置。

答案 1 :(得分:1)

这可能听起来有些荒谬,但您应该查看LOAD_FILE function

以下是MySQL文档的示例

mysql> UPDATE t
        SET blob_col=LOAD_FILE('/tmp/picture')
        WHERE id=1;

只要日志文件足够小以适应BLOB,那么这就是你唯一的注意事项

如果日志文件太大,只需将日志文件归档到某处并保存文件位置

答案 2 :(得分:0)

您的程序将不得不解析日志文件并将其转换为SQL查询。

答案 3 :(得分:0)

如果要将文件的内容存储在数据库中,则是,您可以对其进行编码或将字节存储在表列中。没有办法解决这个问题。

如果您只想存储文件的路径,那么您需要做的就是将路径作为参数传递给MySQLCommand,但是当您在文件系统中移动文件时,您的记录将会显然是无效的。

Link关于哪种方法最好的相关问题:将文件内容存储在数据库中,或者只存储文件系统中的路径。

答案 4 :(得分:0)

为什么不使用Log4Net?它能够自动登录数据库。有关如何将数据库连接到Log4Net的详细信息,请查看https://logging.apache.org/log4net/release/config-examples.html

orignal decayed link: http://logging.apache.org/log4net/release/sdk/log4net.Appender.AdoNetAppender.html