【问题标题】:Trouble with returning results from MySql从 MySql 返回结果的问题
【发布时间】:2011-02-04 06:54:13
【问题描述】:

编辑:我解决了我的问题,但如果您有什么要补充的,请执行。谢谢

注意:我没有使用我的网站创建由托管在 GoDaddy 上的 Wordpress 创建的数据库

我有一个名为“wordpress”的 MySql 数据库(为了清楚起见)。我希望能够从我的博客中获取最新的帖子并将其显示在我的网址的登录页面上。 所以我的想法是:连接到 MySql DB,运行查询以获取最新的帖子,显示帖子。

我建立了一个类来处理连接和处理请求:

public class DAL
    {
        private string connectionString = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=[server here]; PORT=[port]; DATABASE=wordpress; 
            USER=[user name here]; PASSWORD=[password here];";
        private OdbcConnection blogConnection;

        public DAL()
        {
            blogConnection = new OdbcConnection(connectionString);
        }

        public String[] GetRecentPost()
        {
            string queryString = "SELECT * FROM RecentPost";
            String[] recentPost = new String[3];

            //ODBC
            blogConnection.Open();

            OdbcCommand MySqlDB = new OdbcCommand(queryString, blogConnection);
            OdbcDataReader reader = MySqlDB.ExecuteReader();

            while (reader.NextResult())
            {
                recentPost[0] = reader.GetString(0);
                recentPost[1] = reader.GetString(1);
            }
            recentPost[2] = reader.HasRows.ToString();
            blogConnection.Close();

            return recentPost;
        }
    }

在上面的queryStringRecentPost 是我创建的一个视图,用于简化queryString,因为查询有点长。 我已经知道视图有效。我通过从 GoDaddy 托管中心打开 phpMyAdmin 对其进行了测试,并执行了上面的查询,我得到了正确的结果,所以我认为查询/视图没有错。

着陆页的代码隐藏:

protected void Page_Load(object sender, EventArgs e)
        {
            DAL dataAccess = new DAL();

            String[] recentPost = dataAccess.GetRecentPost();

            Title.Text = recentPost[0];
            Post.Text = recentPost[1];
            Extra.Text = recentPost[2];
        }

因此,当我的页面加载时,TitlePost 文本为空,Extra.TextFalse(来自 DAL 的值来自 reader.HasRows)。 所以我的猜测是它连接正常并运行查询但可能在错误的数据库上?我不知道。

我也尝试过调试,但是我的代码在尝试连接数据库时抛出错误。

所以我的问题是:您发现连接字符串有什么问题吗?

如果没有,除了会导致建立连接、运行查询、未抛出异常但未返回任何结果之外,您是否看到任何其他内容?

任何有经验尝试从自己的 wordpress 博客中获取数据的人?

感谢您的帮助 - 这个问题让我发疯了。

【问题讨论】:

    标签: mysql asp.net database-connection connection-string


    【解决方案1】:

    我不知道为什么我的原始代码不起作用,但我解决了我的问题。对于其他遇到此问题的人来说,我是如何更改代码(在GetRecentPost 方法中)并解决我的问题的:

    DataSet ds = new DataSet();
    
    //ODBC
    blogConnection.Open();
    
    OdbcDataAdapter MySqlDB = new OdbcDataAdapter(queryString, blogConnection);
    MySqlDB.Fill(ds);
    return ds.Tables[0];
    

    所以我使用了DataSet,而不是字符串数组。我没有使用OdbcDataReader,而是使用了OdbcDataAdapter,并使用OdbcDataAdapter 中的.Fill() 方法填充了DataSet,然后我将DataSet 中的第一个表返回给我的Page_Load 方法。

    这是我的新Page_Load()

    DataTable table = dataAccess.GetRecentPost();
    
    if (table.Rows.Count > 0)
    {
        Title.Text = table.Rows[0]["title"].ToString();
        Post.Text = table.Rows[0]["content"].ToString();
    }
    else
        Extra.Text = table.Rows.Count.ToString(); \\if nothing was returned ouput the 0 just to be sure
    

    希望这可以帮助其他人解决这个问题

    感谢所有花时间查看的人

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-23
      • 2015-02-24
      • 2011-09-18
      • 1970-01-01
      • 2013-08-24
      • 2020-11-28
      • 2010-11-23
      相关资源
      最近更新 更多