PDA

View Full Version : استفاده از کاراکترهای دستوری



fool66
شنبه 02 آبان 1394, 01:19 صبح
سلام
من میخوام یه سری متن رو ذخیره کنم توی دیتابیس که ممکنه کاربر از بعضی کاراکتر ها استفاده کنه که توی رشته در سی شارپ یا SQL معنی خاصی داشته باشه چطور میشه کاری کرد که هر چی وارد کرد به صورت متن باهاش برخورد بشه

'
\
/
,
و...

am_al_59
شنبه 02 آبان 1394, 01:54 صبح
نیازی به کار اضافه نیست رشته ها زمان ذخیره و بازیابی پردازش نمیشن مگر اینکه دستور خاصی روشون اجرا بشه
بازهم اگر اصرار داری میتونی به Base64 تبدیل کنی اما میگم نیازی نیست شما موردی داشتی تا حالا که مثال بزنی ؟

FastCode
شنبه 02 آبان 1394, 02:49 صبح
System.Data.SqlClient.SqlParameter

fool66
شنبه 02 آبان 1394, 03:38 صبح
نیازی به کار اضافه نیست رشته ها زمان ذخیره و بازیابی پردازش نمیشن مگر اینکه دستور خاصی روشون اجرا بشه
بازهم اگر اصرار داری میتونی به Base64 تبدیل کنی اما میگم نیازی نیست شما موردی داشتی تا حالا که مثال بزنی ؟

هر رشته ای میخوام ذخیره کنم که درونش ' هست ارور میده

am_al_59
شنبه 02 آبان 1394, 04:57 صبح
شما یک TextBox داری به اسم textBox1 و در فرمت کاربر توش وارد میکنه

d:\




میتونی textBox1.Text رو مستقیم بریزی تو دیتابیس یا بریزی تو متغیر بعد بریزی تو دیتابیس دستور زیر خطا نداره

string str=textBox1.Text;

منظور پست قبلی من این بود

حالا اگر شما داری توی کد برنامت یک رشته خاص رو استفاده میکنی مثل همون d:\ دستور زیر خطا داره



string str="d:\";


دوتا راه هست
یکی اینکه کاراکتر های خاص رو تبدیل کنی طبق قواعد C#‎‎‎ مثل این


string str="d:\\";

راه دوم که ساده تره و اگر رشتت طولانیه یا نمیخوای تغییر توش بدی این دستوره


string str=@"d:\";

فقط کافیه @ رو قبل از رشتت بزاری

pbm_soy
شنبه 02 آبان 1394, 13:37 عصر
چندین راه حل برای اینکار وجود دارد مثلا برای ذخیره ' در دیتابیس باید آنرا دوبار وارد کنید یعنی رشته را با متد replace بگید ' را به دوتا ' عوض کنید و یا ' را با \' عوض کنید
برای اطلاعات بیشتر به لینک زیر مراجعه کنید
http://www.codeproject.com/Questions/157918/How-can-I-insert-a-special-character-in-sql-server

FastCode
شنبه 02 آبان 1394, 14:13 عصر
چندین راه حل برای اینکار وجود دارد مثلا برای ذخیره ' در دیتابیس باید آنرا دوبار وارد کنید یعنی رشته را با متد replace بگید ' را به دوتا ' عوض کنید و یا ' را با \' عوض کنید
برای اطلاعات بیشتر به لینک زیر مراجعه کنید
http://www.codeproject.com/Questions/157918/How-can-I-insert-a-special-character-in-sql-server

خواهش میکنم این کار رو نکنید. التماس میکنم. جون من.
http://www.slideshare.net/billkarwin/sql-injection-myths-and-fallacies
http://kunststube.net/encoding/