C # и соединение с SQL Server - PullRequest
1 голос
/ 09 июня 2011

Я не могу подключиться к своей локальной базе данных.Каждый раз, когда я запускаю его, он выдает всплывающие пустые окна (пустые окна командной строки).

Что мне не хватает?

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;

namespace dbtest1
{
    class Program
    {
        static void Main(string[] args)
        {
            string myConnectionString = "Initial Catalog=myDB;Data Source=localhost;Integrated Security=SSPI;";
            SqlConnection myConnection = new SqlConnection(myConnectionString);
            string myInsertQuery = "INSERT INTO tts (min, max, average, lh, stdev, main_id) Values(5,5,5,'ASU',5,55)";
            SqlCommand myCommand = new SqlCommand(myInsertQuery);
            myCommand.Connection = myConnection;
            myConnection.Open();
            myCommand.ExecuteNonQuery();
            myCommand.Connection.Close();
        }
    }
}

при запуске отладки выдает ошибку при myConnection.Open();

SqlException не обработан: при установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server)

Ответы [ 2 ]

3 голосов
/ 09 июня 2011

Ваш SQL Server не настроен для обмена данными по TCP / IP (что подразумевает localhost)

Вы можете изменить строку подключения, чтобы использовать (local) вместо localhost (примечание: квадратные скобки важны). Вот так:

Data Source=(local);

или

Вы можете настроить свой SQL Server на прием соединений TCP / IP.

Откройте Диспетчер конфигурации SQL Server и перейдите к Конфигурация сети SQL Server -> Протоколы для

Справа вы увидите список протоколов, таких как Общая память, Именованные каналы, TCP / IP и т. Д. Убедитесь, что TCP / IP включен. (Щелкните правой кнопкой мыши и выберите «Включить»)

Вы упоминаете, что где-то еще используете SQL Server Express, и в этом случае ваш источник данных должен также включать имя экземпляра SQLEXPRESS, например:

Data Source=localhost\SQLEXPRESS
1 голос
/ 09 июня 2011

Могу поспорить, что приложение работает.Вы проверили базу данных, чтобы увидеть, вставлены ли значения?

Пустое окно командной строки, скорее всего, потому что вы установили тип проекта как консольный проект Windows.

Возможно добавьте Console.WriteLine("No worries!"); в конце метода Main.

...