PDA

View Full Version : سوال: نحوه نمایش primary key در textbox یا label (خیلی حیاتیه)



n.ghavidel
جمعه 05 اسفند 1390, 00:13 صبح
سلام دوستان.
خسته نباشید.
تو رو خدا کمکم کنید من کل تاپیک ها رو گشتم اما چیزی در این رابطه پیدا نکردم.
مشکل من اینه.
من یک ID رو primary key کردم که از عدد 100 شروع میشه و 4 تا 4 تا میره بالا.
وقتی یک سری اطلاعات رو وارد جدولم میکنم بعد اینکه وارد جدول شدن میخوام اون ID که به اون داده ها تعلق میگیره رو درون یک textbox یا message box یا حتی label نمایش داده بشه.
هر چقدر گشتم راه حل پیدا نکردم چند جا نوشتن این کد رو وارد کنم :
(["نام فیلد"]textbox.text=convert.Tostring(dr
این کد رو وارد میکنم error نمیده اما داخل textbox خالیه
اینکارو واسه لیبل هم امتحان کردم اما بازم چیزی نشون نداد.
تو رو خدا کمکم کنید.
خواهش میکنم:گریه::گریه::گریه::گریه: :گریه:

p.parsaee
جمعه 05 اسفند 1390, 00:34 صبح
سلام، اگه با ديتاست اطلاعاتت رو از پايگاه داده بخوني به طريق زير ميشه كارتو انجام بدي

static OleDbConnection con =new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=db1.mdb");
OleDbDataAdapter da = new OleDbDataAdapter("",con );

DataSet ds = new DataSet();
da.SelectCommand.CommandText = "select id, name from student";
da.Fill(ds, "t1");
txtName.DataBindings.Add("text", ds, "t1.name")

n.ghavidel
جمعه 05 اسفند 1390, 00:46 صبح
شرمنده من این کد ها رو نوشتم تو
s1 = "Data Source=NEGAR-PC;Initial Catalog=Chapter1;Integrated Security=True;Pooling=False";
con = new SqlConnection(s1);
con.Open();
s2 = "select * from employee";
da = new SqlDataAdapter(s2, con);
da.Fill(ds, "employee");
dr = ds.Tables["employee"].NewRow();
dr["Name"] = txtName.Text;
dr["Family"] = txtFamily.Text;
dr["Sh"] = Int32.Parse(txtSh.Text);
dr["Address"] = txtAddress.Text;
ds.Tables["employee"].Rows.Add(dr);
cb = new SqlCommandBuilder(da);
da = cb.DataAdapter;
da.Update(ds, "employee");
MessageBox.Show("اطلاعات با موفقیت افزوده شد");
میخوام بعد نمایش message box مقدار ID که به این سطر تعلق پیدا کرده نشون داده بشه.
(ببخشید نا مرتبه من بار اولمه تاپیک ایجاد کردم)

n.ghavidel
جمعه 05 اسفند 1390, 00:58 صبح
این کاری که شما گفتید رو انجام دادم اما داخل textbox نام کاربری رو که وارد میکنم نشون میده.
ID ای رو که به اون کاربر تعلق گرفته نشون نمیده:گریه:

p.parsaee
جمعه 05 اسفند 1390, 04:01 صبح
ببخشيد به جاي كد زير كه توي آخرين خط پست بالا نوشتم
txtName.DataBindings.Add("text", ds, "t1.name")
كد زير رو وارد كنيد
txtName.DataBindings.Add("text", ds, "t1.id")
با اين كار به جاي فيلد name فيلد id نشون داده ميشه، بقيه فيلدها رو هم اگه خواستين به همين طريق مي تونيد نشون بدين

n.ghavidel
جمعه 05 اسفند 1390, 09:42 صبح
ببخشيد به جاي كد زير كه توي آخرين خط پست بالا نوشتم
txtName.DataBindings.Add("text", ds, "t1.name")
كد زير رو وارد كنيد
txtName.DataBindings.Add("text", ds, "t1.id")
با اين كار به جاي فيلد name فيلد id نشون داده ميشه، بقيه فيلدها رو هم اگه خواستين به همين طريق مي تونيد نشون بدين




من این کار رو انجام دادم اما توی text box عدد 1 قرار میگیره در صورتیکه برای مثال اون رکوردی که من ایجاد کردم ID اش شماره 12 هستش.
اینی که من نیاز دارم شبیه شماره اشتراک تو مثلا رستورانا هستش که به هر مشتری یک شماره اشتراک تعلق میگیره و این شماره اشتراک یکتاست (من فکر میکنم primary key ) هستش و این تو بانک اطلاعاتیشون ذخیره میشه.
منم میخوام به یه همچین چیزی دست پیدا کنم

lastmory
جمعه 05 اسفند 1390, 15:28 عصر
وقتی یک سری اطلاعات رو وارد جدولم میکنم بعد اینکه وارد جدول شدن میخوام اون ID که به اون داده ها تعلق میگیره رو درون یک textbox یا message box یا حتی label نمایش داده بشه.

دوست عزیز شما بعد از Insert تو جدول این کد رو بنویس RETURN @@IDENTITY
این کد آخرین چیزی رو که Insert شده رو برمیگردونه
تو این حالت هم ، همون آی دی رو برمیگردونه

ghasemweb
جمعه 05 اسفند 1390, 16:03 عصر
سلام ببین خوب شما بعد از این ک یه رکورد رو درج کردی بیا آخرین رکورد رو با دستور زیر بازیابی کن.

SELECT TOP 1 ID FROM TABLE_NAME ORDER BY ID DESC

اگه مشکلی بود بگو باز

Leon_SFS
جمعه 05 اسفند 1390, 21:39 عصر
یکی از روشهاش همین روشه که برای برنامه های با حجم پایین دیتا بد نیست


سلام ببین خوب شما بعد از این ک یه رکورد رو درج کردی بیا آخرین رکورد رو با دستور زیر بازیابی کن.

SELECT TOP 1 ID FROM TABLE_NAME ORDER BY ID DESC

اگه مشکلی بود بگو باز

نسبتا ساده و قابل فهم هم هست

zarrinnegar
جمعه 05 اسفند 1390, 23:08 عصر
اگر از sql و پروسیجر استفاده میکنی بعد از دستور Insert از دستور Return scope_Identity() استفاده کن
آخرین کد رو که ایجاد کرده برمیگردونه

n.ghavidel
جمعه 05 اسفند 1390, 23:23 عصر
دوستان از همگی ممنونم نمیدونم چرا هر کاری میکنم این ID نمایش داده نمیشه.
یکی از دوستانم لطف کردن و یه application برام نوشتن.
با این application من میتونم ID رو دریافت کنم اما وقتی روی اون tableمیرم و show data رو میزنم همش null نشونم میده.
مثل اینکه من ID رو میگیرم اما این اطلاعات تو دیتا بیس و جدولم درج نمیشه.
من این فایل رو ضمیمه میکنم.
اگر کسی پیدا بشه که مشکل این برنامه ی ضمیمه رو بگه واقعا ممنون میشم

zarrinnegar
شنبه 06 اسفند 1390, 00:12 صبح
برنامه درست کار میکنه ولی شما توی ویژوال بانک اطلاعاتی رو که توی پروژه هست رو میبینید ولی در زمان اجرا بانک اطلاعاتی اونیه که توی پوشه Debug هست
بنابراین چیزی رو که شما چک میکنید بانک اطلاعات اصلی توی پروژه است
در ضمن وقتی شما از توی ویژوال اقدام با ساخت بانک اطلاعات میکنید ، موقع تست برنامه ، اطلاعات رو ذخیره نمیکنه و بعد از خروج ار برنامه میبینید که اطلاعاتی وجود نداره
اگر exe برنامه رو از Debug اجرا کنید ، اطلاعاتتون ثبت شده میمونه
من برنامه رو تغییر دادم برای نمایش دادن رکورد ها ببینش
لینک
83269

generic
شنبه 06 اسفند 1390, 00:13 صبح
سلام
این چیزی نیست که با گفته های دوستان حل نشود . میتونی از watch یا در زمان اجرا مقادیر را نگاه کنی و ببینی مشکل از کجاس.

n.ghavidel
شنبه 06 اسفند 1390, 00:31 صبح
دوستان از همگی ممنونم من مشکلم حل شد.
دیگه واقعا داشتم بی خیال این قضیه میشدم.
مرسی اون دوستمم گفته بود که داده ها ذخیره میشن اما چون من نمیدیدم فکر میکردم ایشون اشتباه کرده.
دست همگی درد نکنه.
دست اون دوست گرامی هم درد نکنه.:لبخندساده: