在Visual Studio 2010中使用C#通过数据连接访问WordPress MySQL数据库

时间:2012-04-15 作者:Jack

所以我在google上搜索了无数的教程,阅读了MySQL、Visual Studio、WordPress和Plesk上的文档。我试着把在这个网站上发帖作为最后的选择,似乎事情已经到了这个地步。

简单地说,我想在另一个ASP上显示WordPress博客中的类别列表。NET/C#我拥有的网站。没有专门的类别名称RSS,否则我会使用RSS提要中的XML和XSLT以这种方式显示类别列表。我得出的结论是,我必须直接从我的其他网站访问我的WordPress数据库(分类名称存储在那里)。

为此,我在本地计算机(C:Drive)上下载并安装了MySQL Connector Net 6.5.4,允许在Visual Studio中添加数据连接时使用“MySQL数据库”选项。我还从MySQL上的“Select Platform:”下拉列表中选择“.Net&MONO”,下载了MySQL Connector Net 6.5.4的“noinstall”。com,以便在我的C#代码中添加对DLL的引用。

在尝试运行代码或添加数据连接时,我会遇到相同的错误。添加数据连接最初是为了在运行代码时出错后测试与数据库的实际连接。

错误:“无法连接到任何指定的MySQL主机。”

下面是我默认的代码。aspx。cs文件:

...
using MySql.Data.MySqlClient;

public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
...
        String MyConnectionString = "SERVER=localhost;UID=testusername;PASSWORD=testpassword;DATABASE=testdbname;";
        MySqlConnection connection = new MySqlConnection(MyConnectionString);
        MySqlCommand command = connection.CreateCommand();
        command.CommandText = "SELECT * FROM wp_terms wt " +
                      "INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id " +
                      "WHERE wtt.taxonomy=\'category\' ORDER BY wt.name";
        try
        {
            connection.Open();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        MySqlDataReader Reader = command.ExecuteReader();
        while (Reader.Read())
        {
            string thisrow = "";
            for (int i = 0; i < Reader.FieldCount; i++)
            {
                thisrow += Reader.GetValue(i).ToString() + ",";
                Label1.Text += thisrow;
            }
        }
        connection.Close();
    }
}
此时,我确信问题在于我在字符串MyConnectionString=“SERVER=localhost;UID=testusername;PASSWORD=testpassword;DATABASE=testdbname;”中输入的凭据;或尝试“添加数据连接”时。但是,我检查了wp配置。我的WordPress安装中的php文件位于博客的根目录中,因此,我确信我提供了正确的凭据。我唯一有点不确定的是数据库服务器名称[本地主机]。

还有什么我做得不对的吗?WordPress数据库是否可能不允许远程访问?

任何帮助都将不胜感激!提前感谢您!

P、 我也在堆栈溢出上发布了这个问题。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

没有专门的类别名称RSS,否则我会使用RSS提要中的XML和XSLT以这种方式显示类别列表。

有一个名为add_feed(). 您可以使用它创建任何提要或其他输出。对你的情况应该有用。这也很简单。

示例插件

<?php
/**
 * Plugin Name: Category Feed
 * Description: XML output for the categories located on /catxml/
 */

add_action( \'init\', array ( \'T5_Cat_Feed\', \'init\' ) );

class T5_Cat_Feed
{
    public static function init()
    {
        add_feed( \'catxml\', array ( __CLASS__, \'display\' ) );
    }

    public static function display()
    {
        $args = array(
            \'hide_empty\'               => 0,
            \'hierarchical\'             => 0,
            \'taxonomy\'                 => \'category\'
        );
        $cats = get_categories( $args );

        if ( empty ( $cats ) or ! is_array( $cats ) )
        {
            return;
        }

        header( \'Content-Type: text/xml\' );
        print \'<categories>\';

        foreach ( $cats as $cat )
        {
            $url = get_category_link( $cat->term_id );
            print "<category>
<name>$cat->cat_name</name>
<id>$cat->term_id</id>
<url>$url</url>
<description>$cat->category_description</description>
<parent>$cat->parent</parent>
<count>$cat->count</count>
</category>"
            ;
        }
        print \'</categories>\';
    }
}
作为插件安装在您的博客上,访问permalink设置页面一次以刷新重写缓存,然后转到example.com/catxml/example.com/?feed=catxml. 这里有一个包含类别数据的简单XML文件。

结束

相关推荐

GET_CATEGORIES类似wp_LIST_CATEGORIES的层次顺序-使用名称、插件和链接编辑CAT

我需要找到一种方法来列出所有类别-无论是否为空-在一个层次列表中-如wp\\U list\\U类别-还显示slug、cat名称和要在admin中编辑的链接。以下是我目前掌握的情况:$args = array( \'orderby\' => \'name\', \'order\' => \'ASC\', \'hide_empty\' => \'0\', ); $categ