View Full Version : گفتگو: پیدا کردن راهی برای اینکه کدهای داخل textbox اجرا نشه
toopak
دوشنبه 09 شهریور 1388, 17:56 عصر
سلام به همگی
امروز میخواستم محتوای یک تکس باکس رو توی بانک ذخیره کنم،ولی متاسفانه در کمال تعجب به یک error رسیدم
محتوای textbox یک سری کد های vb.Net توش بود و وقتی خواستم توی بانک بریزم ارور syntax داد
فرض کنید بخوایم این کد رو ذخیره کنیم
Class SingletonClass
NotInheritable
' Static members are lazily initialized.
' .Net guarantees thread safety for static initialization
Private Shared ReadOnly instance As SingletonClass = New SingletonClass()
' Note: constructor is private.
Private Sub New()
End Sub
Public Shared Function GetInstance() As SingletonClass
Return instance
اما موقع ذخیره vb.Net سعی میکنه که این ها رو اجرا کنه
چه پیشنهادی دارید شما؟
من اومد اول همه ' قرار دادم که شاید فک کنه comment،و اجراشون نکنه،ولی اثری نداشت:اشتباه:
خلاصه دستم به دامنتون ،کمک کنید به یه نتیجه ای برسیم
toopak
سه شنبه 10 شهریور 1388, 02:52 صبح
یکی پیدا نمیشه به داد من برسه؟
majid325
سه شنبه 10 شهریور 1388, 04:12 صبح
از پارامتر استفاده کن.
Amir Oveisi
سه شنبه 10 شهریور 1388, 04:39 صبح
یک راه اینه که این string هارو به صورت base64 در db ذخیره کنی.
Convert.ToBase64String
موقع خوندن از db :
Convert.FromBase64String
toopak
سه شنبه 10 شهریور 1388, 16:22 عصر
از پارامتر استفاده کن.
میشه واضح تر توضیح بدید؟
یک راه اینه که این string هارو به صورت base64 در db ذخیره کنی.
Convert.ToBase64String
موقع خوندن از db :
Convert.FromBase64String
این راهی که شما میگید برای string جواب نمیده
کلا string کانورت نمیشه
:عصبانی++:کمک کنید دوستان
Open-Source
سه شنبه 10 شهریور 1388, 16:56 عصر
میشه اون تکه کدت رو که باهاش توی بانک ذخیره میکنی رو یزاری؟
toopak
سه شنبه 10 شهریور 1388, 17:31 عصر
بله حتما، بفرمایید:
Dim inssql As String
Dim cmdsql As New OleDbCommand
inssql = "INSERT INTO tblcode(name,code)VALUES('" & TextBox1.Text & "', '" & TextBox2.Text & "' )"
cmdsql.Connection = con
cmdsql.CommandText = inssql
con.Open()
cmdsql.ExecuteNonQuery()
con.Close()
sa_ghaznavi
سه شنبه 10 شهریور 1388, 17:43 عصر
مشکل کار شما در common هاست یعنی " ' " . و باید اونها رو حذف کنی .
majid325
سه شنبه 10 شهریور 1388, 17:50 عصر
یک راه اینه که این string هارو به صورت base64 در db ذخیره کنی.
Convert.ToBase64String
موقع خوندن از db :
Convert.FromBase64String
این متد های که معرفی کردین یک Arry Byte رو با string تبدیل میکنند.
میشه واضح تر توضیح بدید؟
OleDbParameter (http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbparameter.aspx)
احتمالا به دلیل وجود کاراکتر های نا مناسب (مثل تک کوتیشن) و در نتیجه ایجاد یک رشته sql نا معتبر و خطا ایجاد میشه.
برای تست این موضوع هم میتونی در نمنه کدی که در پست اول گزاشتی تک کوتیشن ها رو حذف کنی (واگه کارکتر sql ای دیگه هم هست) و دوباره عمل ثبت رو تست کنی.
toopak
سه شنبه 10 شهریور 1388, 18:19 عصر
مشکل کار شما در common هاست یعنی " ' " . و باید اونها رو حذف کنی .
نه،اونها رو هم پاک کردم کد زیر رو گذاشتم ولی باز هم خطا میده
Class SingletonClass
NotInheritable
Static members are lazily initialized.
Net guarantees thread safety for static initialization
Private Shared ReadOnly instance As SingletonClass New SingletonClass
Noteconstructor is private
Private Sub New
End Sub
Public Shared Function GetInstance As SingletonClass
Return instance
این متد های که معرفی کردین یک Arry Byte رو با string تبدیل میکنند.
OleDbParameter (http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbparameter.aspx)
احتمالا به دلیل وجود کاراکتر های نا مناسب (مثل تک کوتیشن) و در نتیجه ایجاد یک رشته sql نا معتبر و خطا ایجاد میشه.
برای تست این موضوع هم میتونی در نمنه کدی که در پست اول گزاشتی تک کوتیشن ها رو حذف کنی (واگه کارکتر sql ای دیگه هم هست) و دوباره عمل ثبت رو تست کنی.
آهان منظورتون اون پارامترها بود؟
اون تک کوتیشن ها رو هم پاک کردم ولی بازم ایراد میگیره
اگر کد کنم فک کنم جواب بده،ولی کد اینکریپت ندارم
mir555
سه شنبه 10 شهریور 1388, 18:26 عصر
پارامتر هم ایمن تره هم اینکه راحت تره بهتره همیشه از اون استفاده کن در بانک
toopak
سه شنبه 10 شهریور 1388, 19:03 عصر
از همه کسایی که کمک کردن ممنون
بالاخره مجبور شدم با encrypt کردن تو بانک ذخیره کنم و موقع نمایش هم decrypt کنم
البته هنوز دلم میخواد ببینم آیا راه دیگه ای هم هست یا نه
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.