2015-12-14 9 views
5

私はAdventureWorksデータベースを使用してプロジェクトを行っていますが、ユーザーがアカウント情報を変更できるようにデータベースにアクセスしようとしています。 Webサイトのユーザーは、ASP.NET構成マネージャーを使用して設定されているため、実際にどのように作業するかはわかりません。私はGetCustomer Selectメソッドを設定して、Person.Contactテーブル内の顧客の姓と名だけを(この時点で)取得します。Adventure Worksユーザー情報へのアクセス

[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; 
} 

しかし、私は言ってエラーになっている:「無効なオブジェクト名 『Person.Contact』」 をそれは私がそれが問題であるクエリだと思うようになります。私が使用しているクエリは、Msdn Webサイトのサンプルシナリオの1つに基づいています。 ユーザーが自分のアドレスとパスワードを変更できるように顧客情報を取得するために使用するテーブルに関して、誰かが正しい方向に向けることができれば、非常に感謝しています。

+0

AdventureWorksデータベースのバックアップを復元しました。 'Person.Contact'テーブルはありません! 'Sales.Individual'も欠けています – Irshad

+0

データベースに' Person.Contact'と 'Sales.Individual'テーブルがあるかどうかを確認してください。 – Irshad

+0

まあ、それは間違いなくいくつかの問題を引き起こすでしょう。私は正しい表を探す必要があります。 –

答えて

0

これはあなたのためのトリックを行う可能性があります。

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

あなたAdventureWorksデータベース上のテーブルPerson.ContactSales.Individualの存在を確認してください。このエラーInvalid object name 'Person.Contact'は、テーブルまたは同様にデータベースから見つからない場合に発生します。

AdventureWorksのバックアップを復元しました。それはPerson.Contactテーブルを持っていません! Sales.Individualもありません

関連する問題