mary3541
دوشنبه 18 خرداد 1388, 02:21 صبح
تو فرمم یک dgv دارم که اطلاعات جدول Class که عبارتند از Class_ID و TitleFaو TitleEn و Capacity در آن قرار داره
یک دکمه ویرایش نیز داخل فرم دارم که با زدن این دکمه فرم ویرایش باز میشه.فرم ویرایش از چهار کنترل bllCodeID وbllTitleFa و bllTitleEnوbllCapacity و یک دکمه ثبت تشکیل شده. با load شدن فرم ویرایش اطلاعات ردیف جاری dgv در این فرم قرار میگیره.
حال میخواهم با ویرایش این اطلاعات و زدن دکمه ثبت اطلاعات ویرایش بشه ولی error میده
برای دکمه ثبت کد زیر رو نوشتم
int Capacity;
int.TryParse(bllCapacity.txt.Text, out Capacity);
if (bllNameFa.txt.Text == "" || bllNameEn.txt.Text == "")
{
MessageBox.Show("please enter value");
return;
}
frmClass clas = new frmClass();
ds = objcla.connect();
DataRowView drv = (DataRowView)this.BindingContext[ds.Tables["Class"]].Current;
int rowid = (int)drv.Row["Class_ID"];
if (objcla.editClass(rowid, bllNameFa.txt.Text, bllNameEn.txt.Text,Capacity ))
MessageBox.Show("ویرایش انجام شد");
}
داخل لایه business layerهم کد زیر برای ویرایش هست
public Boolean editClass(int Class_ID, object TitleFa, object TitleEn, object Capacity)
{
objcla.editClass(Class_ID, TitleFa, TitleEn, Capacity);
return true;
}
و داخل لایه data layer کد زیر برای ویرایش هست
public Boolean editClass(int Class_ID, object TitleFa, object TitleEn, object Capacity)
{
SqlCommand cmd = new SqlCommand("update Class set TitleFa=@Farsi,TitleEn=@English, Capacity=@zarfyat where Class_ID=@Class_ID ", con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@Farsi", TitleFa);
cmd.Parameters.AddWithValue("@English", TitleEn);
cmd.Parameters.AddWithValue("@zarfyat", Capacity);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
SqlDataAdapter sda = new SqlDataAdapter("select * from Class ", con);
sda.SelectCommand.CommandType = CommandType.Text;
sda.Fill(ds, "Class");
return true;
}
کد تابع connect هم در لایه business عبارت است از
public DataSet connect()
{
DataSet ds = new DataSet();
ds = objcla.connect();
return ds;
}
و کد تابع connect در لایه data
public DataSet connect()
{
con = new SqlConnection("data source=.\\sqlexpress;attachdbfilename=|datadirecto ry|\\AcademySystem.mdf;integrated security=true; user instance=true");
SqlDataAdapter sda = new SqlDataAdapter("select * from Class", con);
sda.SelectCommand.CommandType = CommandType.Text;
DataSet ds = new DataSet();
sda.Fill(ds, "Class");
return ds;
}
error زیر رو میده
یک دکمه ویرایش نیز داخل فرم دارم که با زدن این دکمه فرم ویرایش باز میشه.فرم ویرایش از چهار کنترل bllCodeID وbllTitleFa و bllTitleEnوbllCapacity و یک دکمه ثبت تشکیل شده. با load شدن فرم ویرایش اطلاعات ردیف جاری dgv در این فرم قرار میگیره.
حال میخواهم با ویرایش این اطلاعات و زدن دکمه ثبت اطلاعات ویرایش بشه ولی error میده
برای دکمه ثبت کد زیر رو نوشتم
int Capacity;
int.TryParse(bllCapacity.txt.Text, out Capacity);
if (bllNameFa.txt.Text == "" || bllNameEn.txt.Text == "")
{
MessageBox.Show("please enter value");
return;
}
frmClass clas = new frmClass();
ds = objcla.connect();
DataRowView drv = (DataRowView)this.BindingContext[ds.Tables["Class"]].Current;
int rowid = (int)drv.Row["Class_ID"];
if (objcla.editClass(rowid, bllNameFa.txt.Text, bllNameEn.txt.Text,Capacity ))
MessageBox.Show("ویرایش انجام شد");
}
داخل لایه business layerهم کد زیر برای ویرایش هست
public Boolean editClass(int Class_ID, object TitleFa, object TitleEn, object Capacity)
{
objcla.editClass(Class_ID, TitleFa, TitleEn, Capacity);
return true;
}
و داخل لایه data layer کد زیر برای ویرایش هست
public Boolean editClass(int Class_ID, object TitleFa, object TitleEn, object Capacity)
{
SqlCommand cmd = new SqlCommand("update Class set TitleFa=@Farsi,TitleEn=@English, Capacity=@zarfyat where Class_ID=@Class_ID ", con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@Farsi", TitleFa);
cmd.Parameters.AddWithValue("@English", TitleEn);
cmd.Parameters.AddWithValue("@zarfyat", Capacity);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
SqlDataAdapter sda = new SqlDataAdapter("select * from Class ", con);
sda.SelectCommand.CommandType = CommandType.Text;
sda.Fill(ds, "Class");
return true;
}
کد تابع connect هم در لایه business عبارت است از
public DataSet connect()
{
DataSet ds = new DataSet();
ds = objcla.connect();
return ds;
}
و کد تابع connect در لایه data
public DataSet connect()
{
con = new SqlConnection("data source=.\\sqlexpress;attachdbfilename=|datadirecto ry|\\AcademySystem.mdf;integrated security=true; user instance=true");
SqlDataAdapter sda = new SqlDataAdapter("select * from Class", con);
sda.SelectCommand.CommandType = CommandType.Text;
DataSet ds = new DataSet();
sda.Fill(ds, "Class");
return ds;
}
error زیر رو میده