我正在進入oop的第一步,這需要對我的應用程序進行徹底刪除,並將其重新設計爲3層和麪向對象。 嘆息。我有一個提交對象,它應該包含一個客戶對象(以及一個代理和覆蓋對象);我想在每個包含的對象的字段中存儲來自數據庫的一些datareader結果,但是當我嘗試用新的提交對象調用Customer對象時,我什麼也得不到。 VS不承認提交包含一個Customer對象。我明顯錯過了一些關鍵點,所以考慮到這一點,想法?下面的代碼。在另一個C#類中創建一個對象?
//This is the Submission class here
public class Submission
{
public int SubmissionId {get;set;}
public int Status { get; set; }
public string StatusComment { get; set; }
public class Customer
{
//public Customer() { }
public int CustId { get; set; }
public string CustName { get; set; }
public string CustAddress { get; set; }
public string CustState { get; set; }
public string CustCity { get; set; }
public int CustZip { get; set; }
public int SicNaic { get; set; }
}
public object Customer();
}
//These lines throw an error:
無法通過表達式引用類型。 VS無法識別TempSubmission.Customer在提交內部對Customer對象的調用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
/// This query should selects the relevant data for a gridview on the presentation layer and stores in a list.
/// Don't quite know how to bind it to the gridview yet, but that's a different question.
public class SubmissionDatabaseService
{
public List<Submission> GetAllSubmissions()
{
string Searchstring = "SELECT Submission.SubmissionId, Customer.CustName, Customer.CustCity, Customer.CustState, Broker.BroName, Broker.BroState, Broker.EntityType, Submission.Coverage, Status.Status FROM Submission INNER JOIN Broker ON Broker.BroId = Submission.BroId INNER JOIN Customer ON Customer.CustId = Submission.CustId INNER JOIN Status ON Status.StatusId = Submission.StatusId";
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
SqlDataReader dr = null;
try
{
conn.Open();
SqlCommand Searchcmd = new SqlCommand(Searchstring, conn);
dr = Searchcmd.ExecuteReader();
List <Submission> lstSubmission;
Submission tempSubmission;
while (dr.Read())
{
tempSubmission = new Submission();
tempSubmission.SubmissionId = dr.GetInt32(0);
tempSubmission.Customer.CustName = dr.GetString(1);
tempSubmission.Customer.CustCity = dr.GetString(2);
tempSubmission.Customer.CustState = dr.GetString(3);
tempSubmission.Broker.BroName = dr.GetString(4);
tempSubmission.Broker.BroState = dr.GetString(5);
tempSubmission.Broker.EntityType = dr.GetString(6);
tempSubmission.SubmissionCoverage.Coverage = dr.GetInt32(7);
tempSubmission.Status = dr.GetInt32(8);
//Add rest of the fields
lstSubmission.Add(tempSubmission);
}
}
return lstSubmission;
}
}
嘗試使用聲明移動到頂部 – Grozz 2011-06-07 19:29:01
目前你的客戶定義爲一個內部類的提交而這並不是我想你想。您希望客戶成爲提交之後的頂級課程,並且提交內容需要參考客戶實例。 – ribram 2011-06-07 19:29:37