Соединение должно быть действительным и открыть ошибку - PullRequest
7 голосов
/ 20 ноября 2010

Я получаю сообщение об ошибке: соединение должно быть действительным и открытым при запуске этой программы.Я искал в Google и нашел только 2 людей, которые имеют ту же ошибку.Можно ли это исправить ??Thx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Data.Odbc;
using System.Data.Sql;
namespace WindowsFormsApplication1
{
static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        string connectionString = "Server=localhost;Uid=root;Pwd=******;Database=testing;";
        MySql.Data.MySqlClient.MySqlConnection connection = new MySql.Data.MySqlClient.MySqlConnection(connectionString);

        connection.Open();

        string insertQuery = "ALTER TABLE `user` ADD lol INT";
        MySql.Data.MySqlClient.MySqlCommand myCommand = new MySql.Data.MySqlClient.MySqlCommand(insertQuery);
        myCommand.ExecuteNonQuery();
        connection.Close();
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}
}

Ответы [ 2 ]

15 голосов
/ 20 ноября 2010

Вы должны сообщить своей команде об объекте подключения.Добавьте параметр соединения в эту строку:

MySql.Data.MySqlClient.MySqlCommand myCommand = new MySql.Data.MySqlClient.MySqlCommand(insertQuery, connection);
4 голосов
/ 20 ноября 2010

Ваша команда не имеет назначения подключения к ней. Попробуйте передать соединение конструктору команды следующим образом:

MySql.Data.MySqlClient.MySqlCommand myCommand = new MySql.Data.MySqlClient.MySqlCommand(insertQuery, connection);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...