PDA

View Full Version : سوال: مشکل در به روز رسانی بانک داده ( برنامه لایه ای )



Milo_22
شنبه 13 فروردین 1390, 14:11 عصر
با سلام به دوستان خوب
من دارم به صورت لایه ای یک پروزه را طراحی می کنم در قسمت به روز رسانی اطلاعات بیمار که داخل بانک داده ام قراره انجام بشه از STP استفاده کردم که به این صورت هست :
ALTER PROCEDURE [dbo].[update_bimar_matab]
@documentID int ,@name nvarchar(50), @family nvarchar(50) , @gender nvarchar(3) ,
@tel1 int , @address nvarchar(100) , @moaref nvarchar(20) , @age_date int
as
BEGIN
update tbBimar
SET fName=@name ,fFamily =@family ,gender=@gender ,age_date=@age_date ,
tel1=@tel1 ,address=@address ,moaref=@moaref
where documentID = @documentID
END

داخل لایه اول این کد رو نوشتم :
private void btnSave_Click(object sender, EventArgs e)
{
String name = txtName.Text;
String family = txtFamily.Text;
String gender = "";
Int32 tel1 = Convert.ToInt32(txtTel1.Text);
String Address = txtAddress.Text;
String moaref = txtMoaref.Text;
Int32 age = Convert.ToInt32(txtYear.Text);
Int32 document = Convert.ToInt32(txtDocumentID.Text);

Int32 Res = 0;
BLL.BLLBase obj = new BLL.BLLBase();


if (rdoMail.Checked == true)
{
gender = "مرد";
}
else
{
gender = "زن";
}

try
{
Res = obj.update_bimar(document, name, family, gender, tel1, Address, moaref,age);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}

if (Res == 1)
{
MessageBox.Show("اطلاعات با موفقیت به روز شد");

}
else
{
MessageBox.Show("خطا در به روز رسانی اطلاعات!!");
}
}

داخل لایه BLL هم این کد :
public int update_bimar(Int32 doceumentN, String name, String family, String gender, Int32 tel1, String address,
String moaref, Int32 age_date)
{
Boolean bolpass = true;
bolpass = chek_rulse_update_bimar(doceumentN, name, family, gender, tel1, address, moaref, age_date);
DAL.DALBase obj = new DAL.DALBase();
int Res = 0;
try
{
if (bolpass == true)
{
obj.update_bimar(doceumentN, name, family, gender, tel1, address, moaref, age_date);
Res = 1;
}
else
{
Res = 0;
}
}
catch (SqlException)
{
throw;
}
return Res;

}

private Boolean chek_rulse_update_bimar(Int32 documentN, String name, String family, String gender, Int32 tel1, String address,
String moaref, Int32 age_date)
{
Boolean bolres = true;
if (Convert.ToString(documentN).Trim().Length == 0)
{
bolres = false;
}



return bolres;

}

و داخل لایه DAL باز به این صورت عمل کردم :
public void update_bimar(Int32 documentN, String name, String family, String gender, Int32 tel1, String address, String moaref, Int32 age_date)
{
con = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand("EXEC update_bimar_matab '" + documentN + "' , '" + name + "' , '" + family + "' , '" + gender + "' ,'" + tel1 + "' , '" + address + "' , '" + moaref + "' , '" + age_date + "'", con);

try
{
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
catch (SqlException)
{
throw;
}
}

برنامه بدون خطا اجرا می شه :

68183

ولی داخل بانک مقادیر هیچ تغییری نمی کنه :متفکر: من برنامه را trace کردم ولی به مشکلی بر نخوردم ببینید :
68184

مقدار برگشتی هم که اگر برنامه به صورت موفقیت آمیز اجرا شد res = 1 هست که همین مقدار را داره بر می گردونه :

68185

کجای برنامه مشکل داره که اطلاعات ارسالی رو به روز نمی کنه ؟
ممکنه راهنمایی بفرمایید ؟
ممنون از لطف همگی

Milo_22
شنبه 13 فروردین 1390, 17:35 عصر
برنامه مشکلی نداره دوستان اشکال در ارسال اطلاعات بود