【问题标题】:Receiving error "no database selected" when trying to query DB [closed]尝试查询数据库时收到错误“未选择数据库”[关闭]
【发布时间】:2015-08-13 17:08:53
【问题描述】:

我是一所职业高中的学生,我还是编程新手,我有一个使用 c# 创建应用程序的任务,我在连接 3 个表以在 datagridview 上显示时遇到问题。 我已经在 mySql 上尝试过查询,它工作得很好,但是当我在我的 c# 代码行中应用它时它没有工作,它显示“没有选择数据库”,有人可以帮我解决这个问题,这是我的完整代码

string constring = "datasource=localhost;port=3306;username=root;password=root";
        MySqlConnection conDataBase = new MySqlConnection(constring);
        MySqlCommand cmdDataBase = new MySqlCommand("select book_detail.id_bookdetail, location.location_id, location.location_name, book.book_id, book.title from location inner join book_detail on location.location_id = book_detail.location_id inner join book on book_detail.book_id = book.book_id; ", conDataBase);
        try
        {
            MySqlDataAdapter sda = new MySqlDataAdapter();
            sda.SelectCommand = cmdDataBase;
            DataTable dbdataset = new DataTable();
            sda.Fill(dbdataset);
            BindingSource bSource = new BindingSource();

            bSource.DataSource = dbdataset;
            transfer_view.DataSource = bSource;
            sda.Update(dbdataset);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

【问题讨论】:

  • 您还需要将数据库名称添加到连接字符串中。查看connection-strings.com 了解更多信息。顺便说一句,代码看起来很棒——对于初学者来说绝对是一流的。继续努力!
  • 啊......它的工作原理!!!!谢谢,:)

标签: c# mysql datagridview


【解决方案1】:

做一个“使用 mydbname”

也许它是你没有提供的先前字符串中的最后一个可选参数

可以执行“select database()”来显示当前正在使用的数据库

【讨论】:

    【解决方案2】:

    您的连接字符串应该指定一个数据库名称:

    Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
                           ^^^^^^^^^^^^^^^^^^^
    

    (3306端口是MySql的默认端口)

    参考。 MySQL connection strings

    【讨论】:

    • 感谢...您的帮助,非常感谢,:)
    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    相关资源
    最近更新 更多