【问题标题】:How to store/retrieve HTML in MySQL using .Net (C#/VB)如何使用 .Net (C#/VB) 在 MySQL 中存储/检索 HTML
【发布时间】:2011-04-19 01:50:43
【问题描述】:

这是我的问题:我需要将 HTML 存储在 MySQL 数据库中。之后,我需要能够检索 HTML 并使其成为浏览器可以呈现的有效 HTML。

我的问题:如何使用 .Net 将 HTML 存储在 MySQL 数据库中?之后如何检索它? 由于这是设计阶段,我可以根据需要以任何方式创建数据库。谢谢。

附:我看过一些使用 PHP 和 JAva 的帖子,但我没有使用 PHP 或 Java,这些帖子并没有真正回答我的问题。

【问题讨论】:

    标签: c# .net mysql vb.net


    【解决方案1】:

    您可以将 HTML 存储为 MySQL 的 BLOB 格式的二进制流。您也可以在 .NET 中检索它。

    要检索和存储它,您可以简单地在 .NET 中使用 Byte[]。

    这是一个使用 BLOB 的示例:http://msdn.microsoft.com/en-us/library/87z0hy49.aspx

    【讨论】:

    • 我知道这种方法,但认为会有更好的方法;由于没有人提出更好的解决方案,而这实际上是我现在正在做的事情,我接受了这个答案。
    【解决方案2】:

    首先,想要存储文件还是只存储 html 文本? 既然你说 php,我认为你使用的是基于网络的。 如果是这样,我建议将 html 文本存储为字符串。

    首先使用以下方式读取 html 文件的内容:

    using( StreamReader reader = new StreamReader( @"c:\index.html" ) )
    {
     String line = String.Emtpy;
     while( (line = reader.ReadLine()) != null )
     {
      Console.WriteLine( line );
     }
    }
    

    然后,在 MySQL 的一个合理的字符串数据类型中做一个正常的字符串插入。 (记不太清了,如果真的需要很多,可以考虑BLOB)

    之后,当你想显示时,在aspx页面后面的代码中,将html作为字符串检索,并使用use

    Response.Write()
    

    【讨论】:

    • 将 html 存储为字符串会比将其存储为二进制对象更好,因此我的建议
    • 我同意,但是,既然它有特殊字符,那么存储它的正确方法是什么?
    • 如果你的特殊字符的意思是像©这样的东西,当你读入html文件时,它应该已经被解析为&0169;。需要测试,无法确认。如果您担心 sql 注入,也许您可​​以将值传递给存储过程。维护也很方便。
    • 如果我错了,请纠正我,但如果我做一个parameters.addWithValue("@htmlString",theHtmlString),它会去掉一些字符,如(*)等。
    • @Dima,我认为这个 U 最好尝试一下。我更习惯实体框架,所以我倾向于坚持实体框架调用存储过程。但是对于我的方法,我没有任何关于特殊字符被剥离的问题。简单的测试方法是,你可以去sql浏览器插入你提到的那些字符。会过去的。所以我相信它不应该去掉特殊字符。我也很想知道它是否会剥夺它们
    【解决方案3】:

    您将需要.NET driver for MySQL。如果您有构建连接到 MSSQL 或任何其他数据库服务器的 C# 应用程序的经验,那么您就会知道下一步该去哪里。

    就存储在数据库中而言,在您的表中有一个 text 字段,用于存储 HTML 代码。

    【讨论】:

      猜你喜欢
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多