-
Update دو فیلد
سلام
ببخشید من میخوام دو تا فیلد رو با یک دستور SQL آپدیت کنم. ولی برنامه خطای Syntax میده. چرا؟
کد:
CMD.CommandText = "UPDATE FalAdminPassword SET Username = '" + txtNewUsername.Text.ToLower + "' , Password= '" + txtNewPassword.Text.ToLower + "'"
در ضمن چه طور میتونم برای یه TextBox توی وی بی InputMak (مثل Access) درست کنم؟
-
با سلام
شما شرط اصلی برای پیدا کردن رکورد مورد نظر را قید نکرده اید کدتون به شکل زیر اصلاح کنید
کد:
CMD.CommandText = "UPDATE FalAdminPassword SET Username = ' " & txtNewUsername.Text.ToLower & " ' , Password= '" & txtNewPassword.Text.ToLower & " ' WHERE ID=x"
x شماره رکورد یا ID مورد نظر است شما میتونید هر شرط دیگری که به این رکورد برسه اعمال کنید
-
سلام
ممنون
آقا این هم سینتکس داد.
WHERE الزامی هستش؟ شاید من نخوام یه فیلد ID داشته باشم. آخه یه پارامتره بدون Where دستور کار میکنه. یعنی فقط آپدیت Username
-
استفاده نکردن از دستور WHERE باعث میشه تمام اطلاعات با این مشخصات ویرایش بشه
مثلا وقتی میخوای فیلد نام' را ویرایش کنی با دستور بدون WHERE تمام فیلد نامها مثل هم اصلاح میشه
ولی سعی کن بانکت برای اصلاح و ویرایش یک فیلد یکتا داشته باشه حالا نه حتما فیلد Id شاید فیلد Nam
در ضمن اگر فیلدهات از نوع عددی باشد نباید بین' کوتشین باشه
اگه حل نشد پیغام خطا رو بزار تا ببینم علتش چیه
-
برنامه من تک کابرست. برای همین جدول Login/Logout فقط شامل یک سطر (و دو ستون UserName و Password)هست. برا همین بدون WHERE هم عملیه.
ارور روی Cmd.ExecuteNonQuery:
OleDbException was unhandled
نمیدونم چرا نمیشه دوبار ExecuteNonQuery کرد. یه بار Username رو آپدیت کنه و ExecuteNonQuery بزنه و بعدش Pass رو آپدیت کنه و ExecuteNonQuery بزنه.
-
سلام
کد پست اول در تعداد گیومه انتهایی مشکل دارد!
کد:
//C#.Net
CMD.CommandText = "UPDATE [FalAdminPassword] SET [Username] = '" + txtNewUsername.Text.ToLower() + "' , [Password] = '" + txtNewPassword.Text.ToLower() + "' ; ";
'VB.Net
CMD.CommandText = "UPDATE [FalAdminPassword] SET [Username] = '" + txtNewUsername.Text.ToLower() + "' , [Password] = '" + txtNewPassword.Text.ToLower() + "' ; "
البته این طرز جمع string هم مستعد خطای تایپی و runtime ای است و هم یک حفره امنیتی است
شما باید از جمع string برای دستورات SQL خود داری کنید.
کد:
CMD.CommandText = "UPDATE [FalAdminPassword] SET [Username]=@Username, [Password]=@Password;" ;
'VB.Net
CMD.CommandText = "UPDATE [FalAdminPassword] SET [Username]=@Username, [Password]=@Password;"
اگر کد فوق کار نکند، یا تایپ نام جدول و فیلدها اشتباه است و یا دیتابیس شما readonly است.
-
ممنون
کد اولی مشکل رو حل کرد.