PDA

View Full Version : مبتدی: مشکل در سرچ براساس برنامه نویسی سه لایه



hasti44
یک شنبه 09 مهر 1391, 21:29 عصر
سلام
میخواهم طبق اصول برنامه نویسی سه لایه برنامه بمویسم کدی که نوشتم برای سرچ بر اساس شناسه قرارداد است هر شناسه ای که میزنم تنها شماره قرارداد اول را برایم میاورد مثلا اگر از 40 تا 50 شناسه دارم و شماره قرارداد شناسه 40 مساوی 5654 است اگر شناسه 47 را هم وارد کنم همین عدد 5654 را برمیگرداند
لطفا کمک کنید
کد modal:

public class AgreementModel
{
private int _AgreementID;
private string _AgreementNumber;
private int _PlaceID;
private string _Price;
private DateTime _BeginDate;
private DateTime _EndDate;
private string _MemberID;
private int _Subject_AgreementID;
private int _PaymentMethodID;
private string _Detials;
private DateTime _AgreementDate;
private int _Person_JobID;
private int _FieldID;

/// <constructor>
/// Constructor AgreementModel()
/// </constructor>
public AgreementModel()
{
//
// TODO: Add constructor logic here
//
}

public int AgreementID
{
get
{
return _AgreementID;
}

set
{
_AgreementID = value;
}
}

public string AgreementNumber
{
get
{
return _AgreementNumber;
}

set
{
_AgreementNumber = value;
}
}
{

کد IDAL:


public DataTable searchAgreementByID(int _AgreementID)
{
string query = "Agreement_Teacher_Getlist";
SqlParameter[] sqlParameters = new SqlParameter[1];
sqlParameters[0] = new SqlParameter("@AgreementID", SqlDbType.Int);
sqlParameters[0].Value = Convert.ToInt32(_AgreementID);

return conn.executeSelectQuery(query, sqlParameters);
}

کد BLL:


public AgreementModel getAgreement(int AgreementID)
{
AgreementModel AgreementModel = new AgreementModel();

DataTable dataTable = new DataTable();
dataTable = _AgreementDAL.searchAgreementByID(AgreementID);

foreach (DataRow dr in dataTable.Rows)
{
AgreementModel.AgreementID = Int32.Parse(dr["AgreementID"].ToString());
AgreementModel.AgreementNumber = dr["AgreementNumber"].ToString();

}



return AgreementModel;
}

کد یوزر کنترل

protected void Button1_Click(object sender, EventArgs e)
{

AgreementModel _agreementModel = new AgreementModel();
_agreementModel = _agreementBLL.getAgreement(Convert.ToInt32(TextBox 1.Text));
if (_agreementModel.AgreementNumber == null)
MessageBox.Show("No Match Found!", "Not Found",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
else
MessageBox.Show(_agreementModel.Detials, "Result",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}

amirzandi
دوشنبه 10 مهر 1391, 07:07 صبح
خب مشکل چیه؟

hasti44
دوشنبه 10 مهر 1391, 09:13 صبح
مشکل اینه که هر چی سرچ میکنی خروجی فقط رکورد اول هست

mehdi_gerami65
دوشنبه 10 مهر 1391, 09:18 صبح
میشه خواهش کنم
کد داخل استور پروسیجر رو هم بذارید
یه نگاهی بکنیم
چون یه رکورد به کدهای داخل بانک اطلاعاتی مربوط میشه

hasti44
سه شنبه 11 مهر 1391, 08:36 صبح
ALTER PROCEDURE [dbo].[Agreement_Teacher_Getlist]
@AgreementID as int=null
AS
BEGIN
SELECT FieldName, AgreementID, AgreementNumber, Subject_Agreement,Subject_AgreementID, MemberID,
FieldID,price,AgreementDate, dbo.PersianDate(BeginDate) AS BegDate,
dbo.PersianDate(EndDate) AS EnDate, Detials,Person_JobID, JobName,
BeginDate,EndDate,
PaymentMethodID, PaymentMethod, TeacherName, NameKarfarma
FROM View_Agreement_Teacher3
WHERE COALESCE(@AgreementID,View_Agreement_Teacher3.Agre ementID)=View_Agreement_Teacher3.AgreementID
ORDER BY AgreementID desc
END