2015-12-14 20 views
5

Sto facendo un progetto utilizzando il database AdventureWorks e sto cercando di accedere al database in modo che gli utenti possano modificare le informazioni del proprio account. Gli utenti del sito Web sono configurati utilizzando il Gestore configurazione ASP.NET, quindi non sono sicuro di come procedere. Ho un metodo GetCustomer Select impostato per recuperare (a questo punto) solo il nome e il cognome dei clienti nella tabella Person.Contact.Adventure Works Accesso alle informazioni del cliente

[DataObject(true)] 
public static class CustomerDB 
{ 
    [DataObjectMethod(DataObjectMethodType.Select)] 
    public static List<Customer> GetCustomer() 
    { 
    List<Customer> CustomerList = new List<Customer>(); 
    SqlConnection con = new SqlConnection(GetConnectionString()); 


    string sel = "SELECT Person.Contact.FirstName, Person.Contact.LastName " + 
    "FROM Person.Contact " + 
    "JOIN Sales.Individual ON Person.Contact.ContactID = Sales.Individual.ContactID " + 
    "JOIN Sales.Customer ON Sales.Individual.CustomerID = Sales.Customer.CustomerID " + 
    "WHERE Sales.Customer.CustomerType = Sales.Individual " + 
    "ORDER BY Person.Contact.LastName, Person.Contact.FirstName"; 

    SqlCommand cmd = new SqlCommand(sel, con); 
    con.Open(); 
    SqlDataReader rdr = 
    cmd.ExecuteReader(CommandBehavior.CloseConnection); 
    Customer customer; 
    while (rdr.Read()) 
    { 
     customer = new Customer(); 
     customer.FirstName = rdr["FirstName"].ToString(); 
     customer.LastName = rdr["FirstName"].ToString(); 
     CustomerList.Add(customer); 
    } 
    rdr.Close(); 
    return CustomerList; 
} 
private static string GetConnectionString() 
{ 
    return ConfigurationManager.ConnectionStrings 
    ["AdventureWorksString"].ConnectionString; 
} 

Ma io sto ottenendo l'errore che dice: "Nome oggetto non valido 'Person.Contact'." il che mi fa pensare che sia il problema il problema. La query che sto utilizzando si basa su uno degli scenari di esempio sul sito Web Msdn. Se qualcuno mi può indirizzare nella giusta direzione in termini di quali tabelle utilizzare per ottenere le informazioni sul cliente in modo che un utente possa modificare il proprio indirizzo e password, sarei molto grato!

+0

Ho appena ripristinato un backup del database AdventureWorks. Non ha una tabella 'Person.Contact'! 'Sales.Individual' manca troppo – Irshad

+0

Controlla se il tuo database ha tabelle' Person.Contact' e 'Sales.Individual'. – Irshad

+0

Beh, questo sicuramente causerebbe alcuni problemi. Dovrò cercare i tavoli corretti. –

risposta

0

Questo potrebbe fare il trucco per voi.

string sel = "SELECT pc.FirstName, pc.LastName " + 
    "FROM Person.Contact pc " + 
    "JOIN Sales.Individual ON pc.ContactID = Sales.Individual.ContactID " + 
    "JOIN Sales.Customer ON Sales.Individual.CustomerID = Sales.Customer.CustomerID " + 
    "WHERE Sales.Customer.CustomerType = Sales.Individual " + 
    "ORDER BY pc.LastName, pc.FirstName"; 
0

Si prega di verificare l'esistenza delle tabelle Person.Contact e Sales.Individual sul database AdventureWorks. Poiché questo errore Invalid object name 'Person.Contact' si verifica quando le tabelle o anche mancante dal database.

Ho appena ripristinato un backup del database AdventureWorks. Non ha una tabella Person.Contact! Sales.Individual manca anch'esso