PDA

View Full Version : گفتگو: پیدا کردن راهی برای اینکه کدهای داخل textbox اجرا نشه



toopak
دوشنبه 09 شهریور 1388, 16: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, 01:52 صبح
یکی پیدا نمیشه به داد من برسه؟

majid325
سه شنبه 10 شهریور 1388, 03:12 صبح
از پارامتر استفاده کن.

Amir Oveisi
سه شنبه 10 شهریور 1388, 03:39 صبح
یک راه اینه که این string هارو به صورت base64 در db ذخیره کنی.

Convert.ToBase64String

موقع خوندن از db :

Convert.FromBase64String

toopak
سه شنبه 10 شهریور 1388, 15:22 عصر
از پارامتر استفاده کن.

میشه واضح تر توضیح بدید؟





یک راه اینه که این string هارو به صورت base64 در db ذخیره کنی.

Convert.ToBase64String

موقع خوندن از db :

Convert.FromBase64String

این راهی که شما میگید برای string جواب نمیده
کلا string کانورت نمیشه

:عصبانی++:کمک کنید دوستان

Open-Source
سه شنبه 10 شهریور 1388, 15:56 عصر
میشه اون تکه کدت رو که باهاش توی بانک ذخیره میکنی رو یزاری؟

toopak
سه شنبه 10 شهریور 1388, 16: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, 16:43 عصر
مشکل کار شما در common هاست یعنی " ' " . و باید اونها رو حذف کنی .

majid325
سه شنبه 10 شهریور 1388, 16: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, 17: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, 17:26 عصر
پارامتر هم ایمن تره هم اینکه راحت تره بهتره همیشه از اون استفاده کن در بانک

toopak
سه شنبه 10 شهریور 1388, 18:03 عصر
از همه کسایی که کمک کردن ممنون
بالاخره مجبور شدم با encrypt کردن تو بانک ذخیره کنم و موقع نمایش هم decrypt کنم
البته هنوز دلم میخواد ببینم آیا راه دیگه ای هم هست یا نه