我正在采取oop的第一步,现在我正在重建一个实践项目,使它成为n层和oo。我有一个查询在我的数据层,内部连接三个表,并选择行SubmissionId = x;业务层有一个服务对象,将该行返回到表示层,但是当我点击演示文稿时,我遇到了一个障碍。我确信,只要在表示层上定义了一个未分配的数据层变量就可以了,但我不知道如何正确调用它。思考?下面的代码:传递一个对象与选择哪里变量?
数据层 //这落在公共类SubmissionDatabaseService下//
public Submission GetSubmissionsByID()
{
string viewQuery = "SELECT Submission.SubmissionId, Customer.CustName, Customer.SicNaic, Customer.CustCity, Customer.CustAddress, Customer.CustState, Customer.CustZip, Broker.BroName, Broker.BroCity, Broker.BroAddress, Broker.BroState, Broker.BroZip, Broker.EntityType, Submission.Coverage, Submission.CurrentCoverage, Submission.PrimEx, Submission.Retention, Submission.EffectiveDate, Submission.Commission, Submission.Premium, Submission.Comments FROM Submission INNER JOIN Broker ON Broker.BroId = Submission.BroId INNER JOIN Customer ON Customer.CustId = Submission.CustId WHERE Submission.SubmissionId =" + x;
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
SqlCommand viewCmd = new SqlCommand(viewQuery, conn);
SqlDataReader dr = viewCmd.ExecuteReader();
Submission tempSubmission = new Submission();
tempSubmission.SubmissionId1 = dr.GetInt32(0);
tempSubmission._Cust.CustName1 = dr.GetString(1);
tempSubmission._Cust.SicNaic1 = dr.GetInt32(2);
tempSubmission._Cust.CustCity1 = dr.GetString(3);
tempSubmission._Cust.CustAddress1 = dr.GetString(4);
tempSubmission._Cust.CustState1 = dr.GetString(5);
tempSubmission._Cust.CustZip1 = dr.GetInt32(6);
tempSubmission._Bro.BroName1 = dr.GetString(7);
tempSubmission._Bro.BroCity1 = dr.GetString(8);
tempSubmission._Bro.BroAddress1 = dr.GetString(9);
tempSubmission._Bro.BroState1 = dr.GetString(8);
tempSubmission._Bro.BroZip1 = dr.GetInt32(11);
tempSubmission._Bro.Entity1 = dr.GetString(12);
tempSubmission._SubCov.Coverage1 = dr.GetInt32(13);
tempSubmission._SubCov.CurrentCoverage1 = dr.GetInt32(14);
tempSubmission._SubCov.PrimEx1 = dr.GetInt32(15);
tempSubmission._SubCov.Retention1 = dr.GetInt32(16);
tempSubmission._SubCov.EffectiveDate1 = dr.GetDateTime(17);
tempSubmission._SubCov.Commission1 = dr.GetInt32(18);
tempSubmission._SubCov.Premium1 = dr.GetInt32(19);
tempSubmission._SubCov.Comment1 = dr.GetString(20);
return tempSubmission;
}
业务逻辑层
public class SubmissionService
{
public Submission getSubmissionByID()
{
SubmissionDatabaseService sds = new SubmissionDatabaseService();
return sds.GetSubmissionsByID();
}
}
表示层
protected void Page_Load(object sender, EventArgs e)
{
string x = Request.QueryString["SubmissionId"];
Submission sub = SubmissionService.getSubmissionByID(x); //Here is where I throw an overload error
是的,NerdFury是参数化的时间。我一直在一个人的训练下,他喜欢在我掌握基础知识之后等待学习参数。实际的项目将不会部署,所以不用担心实际的危险,但我现在需要了解它。感谢彻底的例子。 – 2011-06-17 16:27:37
@Brazos - 乐于助人。 – NerdFury 2011-06-17 18:51:30