Adventure Works访问客户信息

时间:2015-12-14 04:28:06

标签: c# asp.net sql-server-2008 configurationmanager

我正在使用AdventureWorks数据库进行项目,并且我尝试访问数据库,以便用户可以更改其帐户信息。该网站的用户是使用ASP.NET配置管理器设置的,所以我不确定如何去做。我有一个GetCustomer Select方法,用于获取(此时)Person.Contact表中客户的名字和姓氏。

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

但我收到的错误是: &#34;无效的对象名称&#39; Person.Contact&#39;。&#34;这让我觉得它是问题的查询。我使用的查询基于Msdn网站上的一个示例场景。 如果有人可以指出我使用哪些表来获取客户信息以便用户能够更改他们的地址和密码,我会非常感激!

3 个答案:

答案 0 :(得分:2)

我从以下步骤中找到了Person.Contact以及Sales.Individual表。希望这会有所帮助。

  1. https://archive.codeplex.com/?p=msftdbprodsamples下载MSFTDBProdSamples.zip。

  2. 解压缩此子文件夹\ sourceCode \ sourceCode.zip \ Katmai_October2009_Refresh3 \ AdventureWorks OLTP。

  3. 以SQLCMD模式从SQL Server Management Studio打开instawdb.sql。

  4. 请确保相应地更改这些行。

:setvar SqlSamplesDatabasePath“ C:\ Program Files \ Microsoft SQL Server \ MSSQL14.MSSQLSERVER \ MSSQL \ DATA \”

:setvar SqlSamplesSourceDataPath“ C:\ Temp \” –在此处复制AdventureWorks OLTP子文件夹

  1. 单击执行。

答案 1 :(得分:1)

请检查Person.Contact数据库中表Sales.IndividualAdventureWorks是否存在。由于在表或同样从数据库中丢失时会发生此错误Invalid object name 'Person.Contact'

我刚恢复了AdventureWorks数据库的备份。它没有Person.Contact表格! Sales.Individual也不见了

答案 2 :(得分: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";