PDA

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



پروگرامنویس
پنج شنبه 30 تیر 1390, 17:47 عصر
سلام
من یه برنامه دفترچه تلفن دارم مینویسم با دیتابیس اس کیو ال
حالا تو قسمت ویرایش اطلاعات به یک مشکل برخوردم.
منطق برنامم اینطوری:
وقتی فرم اصلی لود میشه کد کاربر، نام و یکی از شماره ها در یه دیتا گرید ویو نشون داده میشه ،وقتی کاربر row مورد نظرش رو انتخاب و بعد روی دکمه ویرایش کلیک میکنه پنجره مربوط به ویرایش باز و تمام اطلاعات کاربر انتخاب شده نشون داده میشه و .... .
من اینکارو کردم: کد کاربر انتخاب شده رو به یه تابع فرستادم و بعد با دستور سلکت تمام اطلاعات اون کاربر رو توی یک dataset ریختم(البته بعداز ایجاد dataadapter ) ولی حالا خاصیت یا متدی که بتونه مثلا فامیلی کاربر رو از دیتاست به textboxfamily فرم ویرایش بریزرو نه پیدا میکنم نه روش ریختنش رو بلدم! ناگفته نمونه بجز دیتاست از دیتا تیبل یا دیتا ویو(خاصیت سورس) هم استفاده کردم ولی فایده نداشت ،خطا نمیگیره ولی مقدار خالی برمیگردونه و اینکه برای ارتباط مقدار برگشتی تابع ویرایش با پنجره ویرایش از یه کلاس استفاده کردم که توش فیلدهای جدول دیتابیس رو بصورت خاصیت نوشتم.
امیدوارم تونسته باشم مشکلم رو خوب بیان کرده باشم .
لطفا راهنمایی کنید چون واقعا گیرم!

gerdioz
پنج شنبه 30 تیر 1390, 18:36 عصر
دوست عزیز شما با دریافت یک مقدار از دستور select یک کوئری گرفتید حالا از داخل اطلاعات برگشتی اون کوئری می خواید یک کوئری دیگه واسه ویرایش بگیری آیا منظورتون همینه

ya30ien2
پنج شنبه 30 تیر 1390, 21:03 عصر
اینو کامل ببین کارت رامیندازه




Edit ed = new Edit();
try
{
SqlConnection connect = new SqlConnection(@"Data Source=YA30IEN-PC;Initial Catalog=phonebook;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Select * from phone where id = " + dgv.CurrentRow.Cells[0].Value;
cmd.Connection = connect;
SqlDataAdapter adp = new SqlDataAdapter();
DataSet dt = new DataSet();
adp.SelectCommand = cmd;
connect.Open();
adp.Fill(dt, "name");
connect.Close();
DataView dv = new DataView(dt.Tables["name"]);
cm = (CurrencyManager)(this.BindingContext[dv]);
ed.textid.DataBindings.Add("Text", dv, "id");
ed.textname.DataBindings.Add("Text", dv, "name");
ed.textlname.DataBindings.Add("Text", dv, "lastname");
ed.textphone.DataBindings.Add("Text", dv, "phone");
ed.textmobile.DataBindings.Add("Text", dv, "mobile");
ed.ShowDialog();
}
catch { MessageBox.Show("لطفا یک مخاطب را انتخاب کنید", "اخطار"); }

پروگرامنویس
پنج شنبه 30 تیر 1390, 21:45 عصر
این نابعی هست که توش مشکل پیدا کرردم ،مشکلم تو کدهایی هست که با رنگ قرمز مشخص کردم، من فقط میخوام بدونم جطور میشه ستون های بدست اومده در دیتاست رو به خواص کلاص rabetphoneارسال کرد.بازم اگه بد گفتم لطفا بگید ولی جان من کمک کنید


public RabetPhone update(int n)
{
RabetPhone rb = new RabetPhone();
SqlDataAdapter da =
new SqlDataAdapter("select fname,family,phone1,phone2,mob1,mob2,email,address from tb_tellbook where id=" +n ,strconn);
//DataSet dt = new DataSet();
DataTable dt = new DataTable();
da.Fill(dt);
//rb.name = dt.Columns[0].ColumnName .ToString();
rb.family = dt.Columns["family"].ToString();
rb.phone1 = dt.Columns["phone1"].ToString();
rb.phone2 = dt.Columns["phone2"].ToString();
rb.mobile1 = dt.Columns["mob1"].ToString();
rb.mobile2 = dt.Columns["mob2"].ToString();
rb.email = dt.Columns["email"].ToString();
rb.address = dt.Columns["address"].ToString();
return rb;


}