PDA

View Full Version : سوال: مشکل در ثبت اطلاعات در جدول در روش سه لایه



a_ehsan68
چهارشنبه 17 مهر 1392, 22:57 عصر
با سلام خدمت دوستای عزیز.

من زمانی که اطلاعات رو از طریق روش سه لایه ثبت میکنم در دیتا گرید هم نمایش داده میشه اما وقتی یه بار از برنامه خارج میشمو دوباره جدول لود میشه اطلاعاتی که ثبت کردم اثری ازشون نیست.

همه کدهای مربوط به insert رو میذارم.

ممنون میشم از تجربتون بهرمند شم. با تشکر.

a_ehsan68
چهارشنبه 17 مهر 1392, 23:03 عصر
این کدای لایه data access

namespace Service_Yar
{
class DAL
{
SqlConnection con;
SqlCommand com;
SqlDataAdapter da;
DataTable dt;
DataSet ds;
DataView dv;

public DAL()
{
con = new SqlConnection();
com = new SqlCommand();
da = new SqlDataAdapter();
dt = new DataTable();
ds = new DataSet();
//dv = new DataView();

com.Connection=con;
da.SelectCommand=com;
}

public void Connect()
{
con.ConnectionString=@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirec tory|\dbService.mdf;Integrated Security=True";
con.Open();
}

public void DisConnect()
{
con.Close();
}

//Run Type of SQL
public void EXE(string sql)
{
com.CommandText = sql;
com.ExecuteNonQuery();
}


اینم کدای لایه Bussines

namespace Service_Yar
{
class clsPerson
{
DAL dal = new DAL();

public string _Title;
public string _Name;
public string _Tel;
public string _Mob;
public string _Address;
public string _DateAdd;
public string _Comment;

public void Add()
{
dal.Connect();
string sql = "Insert Into tblPerson(Title,Name,Tel,Mob,Address,DateAdd,Comme nt)";
sql += "Values(N'{0}',N'{1}',N'{2}',N'{3}',N'{4}',N'{5}',N '{6}')";
sql = string.Format(sql, this._Title, this._Name, this._Tel, this._Mob,this._Address, this._DateAdd, this._Comment);
dal.EXE(sql);
dal.DisConnect();

}

اینم کدای لایه User Interface

private void btnSubmit_Click(object sender, EventArgs e)
{
clsPerson cls = new clsPerson();
cls._Title = cbTitle.Text;
cls._Name = txtName.Text;
cls._Tel = txtTel.Text;
cls._Mob = txtMob.Text;
cls._Address = txtAddress.Text;
cls._DateAdd = txtDateAdd.Text;
cls._Comment = txtComment.Text;
cls.Add();

MessageBox.Show("مشترک جدید با موفقیت ثبت شد");
}

kurdboy2175
چهارشنبه 17 مهر 1392, 23:05 عصر
سلام
چرا از روش ویزاردی استفاده نمیکنی این همه دردسری ها رو نداره خیلی هم راحتره و به خوبی هم جواب میده

esafb52
چهارشنبه 17 مهر 1392, 23:08 عصر
دوست عزیز برای هزارو..............بار این بخاطر این هست که در حالت دیزاین برنامه هستی و خود ویژوال استدیو هر بار فایل خام دیتابیس رو کپی میکنه به پوشه دیباگت!!!!!!!!!!!!!!!!

a_ehsan68
چهارشنبه 17 مهر 1392, 23:10 عصر
سلام به KurdBoy عزیز.

اخه امروزه برنامه نویسا مخصوصا شرکت هایی که تیمی کار میکنن از بحث چند لایه بودن برنامه و مزایاش بخوبی بهره میبرن. از جمله انعطاف پذیر بودن - قدرتمند بودن و قابلیت تیکه کردن برنامه یا چند بخشی کردن از مهمترین مزایای چند لایه نویسیه.

a_ehsan68
چهارشنبه 17 مهر 1392, 23:12 عصر
سلام آقای esafb .

میشه بیشتر توضیح بدین؟!

شرمنده دیگه فرق مبتدی با حرفه ای در ایناس دیگه.

میشه بگید راه حلش چیه؟ ممنون میشم.

esafb52
چهارشنبه 17 مهر 1392, 23:33 عصر
دوست عزیز منم مبتدی هستم روی فایل دیتابیست کلیک راست و pp بعدش هم copt to output folder رو Do not copy قرار بده

a_ehsan68
چهارشنبه 17 مهر 1392, 23:48 عصر
دوست عزیز یه دنیا ممنون. حل شد. اما copy to output folder رو Do not copy قرار دادم کلا دیگه هیچ اطلاعاتیو نشونو نمیداد(دیتابیسم بالا نمیومد) اما روی Copy if Never قرار دادم جواب داد. بازم مرسی.