2009-09-07 9 views
0

J'essaie de créer mon programme Hello-World dans LINQ.LINQ Mise en route Problème

Tout en exécutant le code suivant:

(Ceci est mon LINQ à la classe SQL qui est généré par VS2008.)

#pragma warning disable 1591 
//------------------------------------------------------------------------------ 
// <auto-generated> 
//  This code was generated by a tool. 
//  Runtime Version:2.0.50727.3053 
// 
//  Changes to this file may cause incorrect behavior and will be lost if 
//  the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 

namespace LINQ_to_SQL_Test 
{ 
    using System.Data.Linq; 
    using System.Data.Linq.Mapping; 
    using System.Data; 
    using System.Collections.Generic; 
    using System.Reflection; 
    using System.Linq; 
    using System.Linq.Expressions; 
    using System.ComponentModel; 
    using System; 


    [System.Data.Linq.Mapping.DatabaseAttribute(Name="LINQ_Test")] 
    public partial class PersonDataContext : System.Data.Linq.DataContext 
    { 

     private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource(); 

    #region Extensibility Method Definitions 
    partial void OnCreated(); 
    partial void InsertPerson(Person instance); 
    partial void UpdatePerson(Person instance); 
    partial void DeletePerson(Person instance); 
    #endregion 

     public PersonDataContext() : 
       base(global::LINQ_to_SQL_Test.Properties.Settings.Default.LINQ_TestConnectionString, mappingSource) 
     { 
      OnCreated(); 
     } 

     public PersonDataContext(string connection) : 
       base(connection, mappingSource) 
     { 
      OnCreated(); 
     } 

     public PersonDataContext(System.Data.IDbConnection connection) : 
       base(connection, mappingSource) 
     { 
      OnCreated(); 
     } 

     public PersonDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
       base(connection, mappingSource) 
     { 
      OnCreated(); 
     } 

     public PersonDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
       base(connection, mappingSource) 
     { 
      OnCreated(); 
     } 

     public System.Data.Linq.Table<Person> Persons 
     { 
      get 
      { 
       return this.GetTable<Person>(); 
      } 
     } 
    } 

    [Table(Name="dbo.Person")] 
    public partial class Person : INotifyPropertyChanging, INotifyPropertyChanged 
    { 

     private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); 

     private int _ID; 

     private System.Nullable<int> _IDRole; 

     private string _LastName; 

     private string _FirstName; 

    #region Extensibility Method Definitions 
    partial void OnLoaded(); 
    partial void OnValidate(System.Data.Linq.ChangeAction action); 
    partial void OnCreated(); 
    partial void OnIDChanging(int value); 
    partial void OnIDChanged(); 
    partial void OnIDRoleChanging(System.Nullable<int> value); 
    partial void OnIDRoleChanged(); 
    partial void OnLastNameChanging(string value); 
    partial void OnLastNameChanged(); 
    partial void OnFirstNameChanging(string value); 
    partial void OnFirstNameChanged(); 
    #endregion 

     public Person() 
     { 
      OnCreated(); 
     } 

     [Column(Storage="_ID", DbType="Int NOT NULL", IsPrimaryKey=true)] 
     public int ID 
     { 
      get 
      { 
       return this._ID; 
      } 
      set 
      { 
       if ((this._ID != value)) 
       { 
        this.OnIDChanging(value); 
        this.SendPropertyChanging(); 
        this._ID = value; 
        this.SendPropertyChanged("ID"); 
        this.OnIDChanged(); 
       } 
      } 
     } 

     [Column(Storage="_IDRole", DbType="Int")] 
     public System.Nullable<int> IDRole 
     { 
      get 
      { 
       return this._IDRole; 
      } 
      set 
      { 
       if ((this._IDRole != value)) 
       { 
        this.OnIDRoleChanging(value); 
        this.SendPropertyChanging(); 
        this._IDRole = value; 
        this.SendPropertyChanged("IDRole"); 
        this.OnIDRoleChanged(); 
       } 
      } 
     } 

     [Column(Storage="_LastName", DbType="VarChar(50)")] 
     public string LastName 
     { 
      get 
      { 
       return this._LastName; 
      } 
      set 
      { 
       if ((this._LastName != value)) 
       { 
        this.OnLastNameChanging(value); 
        this.SendPropertyChanging(); 
        this._LastName = value; 
        this.SendPropertyChanged("LastName"); 
        this.OnLastNameChanged(); 
       } 
      } 
     } 

     [Column(Storage="_FirstName", DbType="VarChar(50)")] 
     public string FirstName 
     { 
      get 
      { 
       return this._FirstName; 
      } 
      set 
      { 
       if ((this._FirstName != value)) 
       { 
        this.OnFirstNameChanging(value); 
        this.SendPropertyChanging(); 
        this._FirstName = value; 
        this.SendPropertyChanged("FirstName"); 
        this.OnFirstNameChanged(); 
       } 
      } 
     } 

     public event PropertyChangingEventHandler PropertyChanging; 

     public event PropertyChangedEventHandler PropertyChanged; 

     protected virtual void SendPropertyChanging() 
     { 
      if ((this.PropertyChanging != null)) 
      { 
       this.PropertyChanging(this, emptyChangingEventArgs); 
      } 
     } 

     protected virtual void SendPropertyChanged(String propertyName) 
     { 
      if ((this.PropertyChanged != null)) 
      { 
       this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
      } 
     } 
    } 
} 
#pragma warning restore 1591 

Ceci est mon programme pilote codé à la main:

class Program 
    { 
     static void Main(string[] args) 
     { 
      PersonDataContext dc = new PersonDataContext("LINQ_TestConnectionString"); 

      Person person = new Person(); 
      person.ID = 4; 
      person.IDRole = 1; 
      person.FirstName = "aaa"; 
      person.LastName = "bbb"; 

      dc.Persons.InsertOnSubmit(person); 
      dc.SubmitChanges(); 
     } 
    } 

Je reçois le message d'erreur suivant de SQL Server.

A network-related or instance-specific error occurred while 
establishing a connection to SQL Server. The server was not found 
or was not accessible. Verify that the instance name is correct 
and that SQL Server is configured to allow remote connections. 
(provider: Named Pipes Provider, error: 40 - Could not open a 
connection to SQL Server) 

Comment puis-je résoudre le problème?

Répondre

3

Vous transmettez le littéral "LINQ_TestConnectionString" dans le constructeur - il traite donc cela comme la chaîne de connexion elle-même. Ce n'est pas la chaîne de connexion, c'est juste le nom de la chaîne de connexion le réglage.

Le constructeur parameterless - qui utilisera automatiquement le réglage de LINQ_TestConnectionString:

PersonDataContext dc = new PersonDataContext(); 

Sinon, passer dans une chaîne de connexion réelle.

1

Puisque vous draged et laissé tomber la table de la base de données de la chaîne de connexion est déjà là il suffit d'utiliser le constractor par défaut:

new PersonDataContext(); 

si vous voulez passer une chaîne de connexion utiliser ceci:

Data Source=ComputerName\Instancename;Initial Catalog=DataBaseName;Persist Security Info=True;