PDA

View Full Version : جابجایی فیلد



باران امید
یک شنبه 29 اردیبهشت 1387, 22:14 عصر
سلام . من یک جدول دارم با دو تا فیلد که اول یکی از فیلد ها رو پر می کنم و جلوی فیلد دوم خالی می مونه (فرض کنید 5 تا فیلد را پر کردم) بعد حالا که می خوام فیلد دوم را پر کنم از آخرین رکورد یعنی رکورد 6 شروع می کنه به پر کردن :عصبانی++:ولی من می خوام از همون رکورد اول فیلد دوم پر بشه .:افسرده:
مثلا شما اول تو برنامه یه سری نام وارد کردید جلوی نام خانوادگی خالی می مونه حالا می خواین بعدا نام خانوادگی رو که وارد کردید جلوی همون اسم وارد کنید نه اینکه حالا اسم خالی بمونه نام خانوادگی پر بشه ولی من هر کاری کردم نشد :ناراحت::گریه:
حالا چی کار کنم؟

حمیدرضاصادقیان
یک شنبه 29 اردیبهشت 1387, 22:51 عصر
سلام.شما باید در موقعی که میخواهید مقدار فیلد دوم رو پر کنید اولا از دستور update استفاده کنید.
دوما باید از شرط استفاده کنید که مقدار اون باید برای کدوم ردیف باشه.
چون با insert به انتهای اخرین ردیف شما اضافه میکنه.

باران امید
یک شنبه 29 اردیبهشت 1387, 23:18 عصر
سلام مرسی جواب دادید .:لبخند:
برای اینکه در شرط ردیف را مشخص کنم چه دستوری باید بنویسم؟:خجالت:

Amir_Safideh
دوشنبه 30 اردیبهشت 1387, 10:40 صبح
مثلا شما اول تو برنامه یه سری نام وارد کردید جلوی نام خانوادگی خالی می مونه حالا می خواین بعدا نام خانوادگی رو که وارد کردید جلوی همون اسم وارد کنید نه اینکه حالا اسم خالی بمونه نام خانوادگی پر بشه ولی من هر کاری کردم نشد
اگر شما مقدار فیلدهات رو از طریق برنامه به دیتابیس ارسال میکنی بهتره که کدت رو در برنامه خودت اصلاح کنی و در کل خیلی لازم نیست که از طریق دستورات اس کیو ال این UpDate رو انجام بدی .
احتمالا شما زمانی که میخوای فیلد نام خانوادگی رو در مقابل فیلد نام (که قبلا مقدار دهی کرده اید) بزارید باز هم از دستور Insert استفاده میکنید که با این حساب یک رکورد به جداولتون اضافه میشه که نام خانوادگی اون پر هستش و نام خالی میمونه . برای این کار بهتره که به جای دستور Insetr از Edit استفاده کنید تا رکورد جدیدی ایجاد نشه و فقط رکورد جاری ویرایش بشه .
-----------
موفق باشید .

باران امید
دوشنبه 30 اردیبهشت 1387, 16:39 عصر
سلام. مرسی اهمیت دادید.:لبخندساده:
برنامم در vb.net2005 هستش :لبخند: ولی sql2000 دارم.

) & "')"strSql = "Insert Into a(Names) Values (" & "'" & NA(i
این دستوری هستش که برای نام خانوادگی در برنامم دارم.
حالا از Edit برم یا Update؟ برای اینکه ردیف رو مشخص کنم چه کار باید بکنم؟از دستور countو مثل اون یا دستور دیگه؟در برنامم با دستورای vbتونستم ردیف رو مشخص کنم ولی نمی دونم با هاش چی کار کنم؟:گیج:

Amir_Safideh
دوشنبه 30 اردیبهشت 1387, 19:23 عصر
اینطور که من متوجه شدم شما برای ورود اطلاعات به دیتابیس از دستورات اس کیو ال استفاده میکنید . چرا شما به جای دستورات اس کیو ال از ابزار زبان برنامه نویسی استفاده نمیکنید ؟ شما به راحتی با استفاده از ابزار ارتباطی برنامه تون (ابزاری که قابلیت اتصال به دیتاست ها رو دارند) میتونید اینکار رو بکنید و لازم نیست نگران پیدا کردن فیلد و UpDate کردن اون باشید .
به هر حال در کدی که شما در بالا گذاشتید کاملا مشخصه که شما از دستور Insert استفاده کردید و این دستور برای دیتابیس این معنی رو داره که شما تصمیم دارید یک رکورد جدید ایجاد کنید در صورتی که شما میخواهید یک رکورد رو UpDate کنید . من فقط طریقه کلی دستور UpDate رو براتون با یه مثال میگم دیگه تغییر و تبدیلش با خودتون :
UpDate Names
Set F_Family = 'Family'
Where F_Name = 'Name' دز این مثال F_Family همون فیلدیه که نام خانوادگی رو درش ذخیره میکنی و F_Name هم فیلد نام هستش چون من نمیدونم که نام دقیق این فیلدها چی هست اینها رو به عنوان مثال عرض کردم .
-----------
موفق باشید .

باران امید
سه شنبه 31 اردیبهشت 1387, 00:26 صبح
از اینکه وقت می گذارید واقعا ممنونم.:لبخندساده:
من این دستور ها را هم در خود vb نوشتم و حتما تا حالا هم متوجه شدید زیاد هم به sql تسلط ندارم .
درباره Update از وقتی اشاره شد بیشتر یاد گرفتم .دستوری که نوشتیدخیلی کمکم می کنه ،ولی یه سوال برام پیش اومد اگر به نظر شما برنامه بهتر کار می کند در بخش vb.net سوالم را بپرسم یانه ؟:متفکر:اگر با خود vb بشود نوشت که برای خودم هم راحت تر می شود.

باران امید
سه شنبه 31 اردیبهشت 1387, 05:01 صبح
من Update را امتحان کردم ولی خوردم به مشکل ::ناراحت:


(Dim con AsNew SqlConnection(strCon
Dim cmd AsNew SqlCommand("Update names set Family=Na(i) where Name=y (con,"
()con.Open
()Dim rowAffected AsInteger = cmd.ExecuteNonQuery
()con.Close


من Family ها را در آرایه ریختم در Insert into کار می کند ولی اینجا نه. این خطا را می دهد:متعجب:






Na' is not a recognized function name'



اگر واقعا نتونه آرایه را بگیرد چی کار کنم :افسرده:

Amir_Safideh
سه شنبه 31 اردیبهشت 1387, 13:39 عصر
دستوری که نوشتیدخیلی کمکم می کنه ،ولی یه سوال برام پیش اومد اگر به نظر شما برنامه بهتر کار می کند در بخش vb.net سوالم را بپرسم یانه ؟
بهتره که سوال رو در همون تالار وی بی مطرح کنید زودتر به جواب میرسید .
در ضمن شما نمیتونید مقدار رو به صورت آرایه به کوئری ارسال کنید شما میتونید فقط یک مقدار رو برای هر یک از پارامترهای کوئری ارسال کنید . یعنی میتونید بگید که به شرطی که ( نام = علی) باشه .
------------
موفق باشید .