работа с БД с использованием .NET c # - PullRequest
1 голос
/ 31 августа 2010

Я делаю первые шаги в использовании db в приложении, поэтому моя цель - создать простой db с одной таблицей с нуля, чтобы улучшить и изучить

Я открыл новую базу данных, используя визуальную студию: Tolls -> подключиться к базе данных и объявил ему о создании новой базы данных

Следующим шагом было заполнение таблицы четырьмя столбцами (все 4 - nchar (10))

и затем (без фактических данных внутри) я попробовал этот код:

      try
        {
            // step 1: create a SqlConnection object to connect to the
            // SQL Server my server connection string proprties  database
    // i think the bug should be here !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            SqlConnection mySqlConnection = new SqlConnection("Data Source=./SQLEXPRESS;AttachDbFilename=C:/Users/STERN/Documents/myDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");//"server=localhost;database=Northwind;uid=sa;pwd=sa");
            // step 2: create a SqlCommand object
            SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
            // step 3: set the CommandText property of the SqlCommand object to
            // a SQL SELECT statement that retrieves a row from the Customers table
            mySqlCommand.CommandText =
            "SELECT type " +
            "FROM Table1 " +
            "WHERE type = ‘ALFKI’";
            // step 4: open the database connection using the
            // Open() method of the SqlConnection object
            mySqlConnection.Open();

/ * какой-то код .... * /

catch (SqlException e)
        {
            Console.WriteLine("A SqlException was thrown");
            Console.WriteLine("Number = " + e.Number);
            Console.WriteLine("Message = " + e.Message);
            Console.WriteLine("StackTrace:\n" + e.StackTrace);
        }
        string s = Console.ReadLine();
    }

где я получаю исключение mySqlConnection.Open (); это сообщение об ошибке, которое я получаю:

Исключение SqlException Число = 3 Сообщение = во время установки произошла ошибка сети или экземпляра Подключение к SQL Server. Сервер не найден или не был доступен. В Убедитесь, что имя экземпляра правильное и что SQL Server настроен на все теперь удаленные соединения. (поставщик: поставщик именованных каналов, ошибка: 40 - невозможно en соединение с SQL Server) Трассировки стека: в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException , Boolean breakConnection) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning () в System.Data.SqlClient.TdsParser.Connect (ServerInfo serverInfo, SqlInternal ConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Bool например, шифрование, логическое значение trustServerCert, логическое значение интегрированной защиты) в System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin (ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeo ut, SqlConnection owningObject) в System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover (ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection ow ningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) в System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist (SqlConnecti on owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, St ring newPassword, Boolean redirectedUserInstance) в System.Data.SqlClient.SqlInternalConnectionTds..ctor (DbConnectionPoolIdent ity identity, SqlConnectionString connectionOptions, объект providerInfo, строка newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) в System.Data.SqlClient.SqlConnectionFactory.CreateConnection (DbConnectionOp опций tions, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) в System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (DbConn ection owningConnection, пул DbConnectionPool, параметры DbConnectionOptions) в System.Data.ProviderBase.DbConnectionPool.CreateObject (владение DbConnection Object) в System.Data.ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection o wningObject) в System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection ownin GObject) в System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection ow ningConnection) в System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection ou terConnection, DbConnectionFactory connectionFactory) в System.Data.SqlClient.SqlConnection.Open () в ConsoleApplication1.Program.Main (String [] args) в C: \ Users \ STERN \ AppData \ Локальные \ Временные проекты \ ConsoleApplication1 \ Program.cs: строка 29

если кто-то знает о pdf, статье, о чем-то, что могло бы мне помочь, было бы очень мило с его стороны написать это здесь ... может кто-нибудь, пожалуйста, помогите мне ....

Ответы [ 3 ]

1 голос
/ 31 августа 2010

Похоже, что вы не можете подключиться к локальному экземпляру SQL Server Express.

Даже если вы указываете файл локальной базы данных, этот файл будет прикреплен к локальному экземпляру SQL Server.Экспресс, как только он соединяется.Затем весь доступ к данным осуществляется через подключенную базу данных через SQL Server Express (не напрямую из файла).

Убедитесь, что он работает, и вы можете подключиться к нему с помощью SQL Management Studio Express.

Если ваш локальный экземпляр SQL-сервера работает и отвечает или вы хотите, чтобы поведение строки подключения отличалось, я бы предложил проверить ConnectionStrings.com:

Строки подключения SQL Server 2008

0 голосов
/ 31 августа 2010

Я бы сказал, что приложению не удается подключиться к вашему SQL-серверу. Если строка подключения SQL верна, проверьте с помощью вашей поверхности SQL и конфигураций, разрешены ли имена каналов и разрешены ли удаленные подключения.

- редактировать -

Документация Microsoft о том, как настроить SQL Express для удаленных подключений http://support.microsoft.com/kb/914277

0 голосов
/ 31 августа 2010

Попробуйте подключиться к базе данных с помощью той же строки подключения в SQL Server Management Studio. Это подключается? Если нет (и я сомневаюсь, что это произойдет), у вас неверная строка подключения.

Edit:

Кроме того, убедитесь, что службы SQL Server и агента SQL работают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...