none
Не работает учебный пример RRS feed

  • Вопрос

  • Здравствуйте. Начал писать учебный пример с msdn http://msdn.microsoft.com/ru-ru/library/bb386940.aspx
    написал тренировочный код:

    using System;
    using System.Linq;
    using System.Data.Linq;
    using System.Data.Linq.Mapping;
     
    namespace LinqConsoleApp
    {
        [Table(Name = "Customers")]
        public class Customer
        {
            private string _CustomerID;
            [Column(IsPrimaryKey = true, Storage = "_CustomerID")]
            public string CustomerID
            {
                get
                {
                    return this._CustomerID;
                }
                set
                {
                    this._CustomerID = value;
                }
     
            }
     
            private string _City;
            [Column(Storage = "_City")]
            public string City
            {
                get
                {
                    return this._City;
                }
                set
                {
                    this._City = value;
                }
            }
     
        }
        class Program
        {
            static void Main(string[] args)
            {
                // Use a connection string.
                DataContext db = new DataContext
                    (@"C:\linq\NORTHWND.mdf");
     
                // Get a typed table to run queries.
                Table<Customer> Customers = db.GetTable<Customer>();
                // Attach the log to show generated SQL.
                db.Log = Console.Out;
     
                // Query for customers in London.
                var custQuery =
                    from cust in Customers
                    where cust.City == "London"
                    select cust;
                foreach (Customer cust in custQuery)
                {
                    Console.WriteLine("ID={0}, City={1}", cust.CustomerID,
                        cust.City);
                }
     
                // Prevent console window from closing.
                Console.ReadLine();
            }
        }
    }

    получаю ошибку

    "При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: SQL Network Interfaces, error: 26 - Ошибка при обнаружении указанного сервера или экземпляра)"

    Почему так и как это исправить?..

    8 сентября 2012 г. 15:51

Ответы

  • In your main console application add app.Config file. In this file you'll have something like

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <connectionStrings>
        <add name = "Socrates.Data.Repository"
             connectionString = "Data Source =NAOMI-DELL\SQLSERVER2012;Initial Catalog = Socrates; Integrated Security = True; MultipleActiveResultSets = True"  providerName ="System.Data.SqlClient" />
      </connectionStrings>
        
    </configuration>

    where name should match your main class where you have defined the DbContext. In our case we have 3 projects - one with objects defined, one with data defined called Socrates.Data and class name repository.


    For every expert, there is an equal and opposite expert. - Becker's Law


    My blog

    • Помечено в качестве ответа Abolmasov Dmitry 14 сентября 2012 г. 9:11
    10 сентября 2012 г. 12:35
  • Привет.

    В примере ошибка со строкой подключения к базе данных. Нужно использовать полный синтаксис, как сказала Naomi N, есть 2 пути, либо прописать это в файле конфигурации (более правильный и гибкий), либо (для учебный целей подойдет) прописать его в коде:

    // Use a connection string.
                DataContext db = new DataContext
                    ("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\linqtest5\\northwnd.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");


    Для связи [mail]

    • Помечено в качестве ответа Abolmasov Dmitry 14 сентября 2012 г. 9:11
    11 сентября 2012 г. 12:01

Все ответы

  • А у Вас SQL Server Expreess установлен, и версия та, которую требует БД?
    9 сентября 2012 г. 11:49
    Модератор
  • Я ставил 2008 R2 express
    9 сентября 2012 г. 21:38
  • This sounds strange

      // Use a connection string.
                DataContext db = new DataContext
                    (@"C:\linq\NORTHWND.mdf");

    Can you create a connection string in app.config file and test it?


    For every expert, there is an equal and opposite expert. - Becker's Law


    My blog

    10 сентября 2012 г. 3:10
  • I'm just learning so please explain what do you mean?
    10 сентября 2012 г. 12:20
  • In your main console application add app.Config file. In this file you'll have something like

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <connectionStrings>
        <add name = "Socrates.Data.Repository"
             connectionString = "Data Source =NAOMI-DELL\SQLSERVER2012;Initial Catalog = Socrates; Integrated Security = True; MultipleActiveResultSets = True"  providerName ="System.Data.SqlClient" />
      </connectionStrings>
        
    </configuration>

    where name should match your main class where you have defined the DbContext. In our case we have 3 projects - one with objects defined, one with data defined called Socrates.Data and class name repository.


    For every expert, there is an equal and opposite expert. - Becker's Law


    My blog

    • Помечено в качестве ответа Abolmasov Dmitry 14 сентября 2012 г. 9:11
    10 сентября 2012 г. 12:35
  • Привет.

    В примере ошибка со строкой подключения к базе данных. Нужно использовать полный синтаксис, как сказала Naomi N, есть 2 пути, либо прописать это в файле конфигурации (более правильный и гибкий), либо (для учебный целей подойдет) прописать его в коде:

    // Use a connection string.
                DataContext db = new DataContext
                    ("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\linqtest5\\northwnd.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");


    Для связи [mail]

    • Помечено в качестве ответа Abolmasov Dmitry 14 сентября 2012 г. 9:11
    11 сентября 2012 г. 12:01
  • Все равно та же ошибка. Возможно проблема в

    Data Source=.\\SQLEXPRESS

    ?

    Я просто не знаю, что туда писать :)


    P.S. А с MySQL соединение открывалось прекрасно :(
    • Изменено PsilonRus 11 сентября 2012 г. 22:08
    11 сентября 2012 г. 22:05
  • What is your server name? In SSMS try

    SELECT @@SERVERNAME

    Use this name for Data Source.


    For every expert, there is an equal and opposite expert. - Becker's Law


    My blog

    11 сентября 2012 г. 22:22