PDA

View Full Version : چطور می شود از طریقwhere در view یک querystring را گرفت؟



dontspeak
چهارشنبه 15 تیر 1390, 22:07 عصر
سلام دوستان من با asp.net کار می کنم و می خوام یه QueryString که توی آدرس باره رو بخونم و از طریق اون از دیتا بیس یه سری اطلاعات رو بیرون بکشم. وقتی من از طریق sqldatasource می خوام این کار رو بکنم خیلی راحت می تونم از طریق ویزارد توی دستور where کوئری استرینگ رو می خونم اما من می خوام از view استفاده کنم. چطور باید این کار رو بکنم یعنی دستور where رو طوری تغییر بدم که querystring رو بخونه؟

یوسف زالی
چهارشنبه 15 تیر 1390, 23:08 عصر
سلام.
فکر می کنم منظورتون اینه که پارامترهای where از ورودی ست بشن.
برای این کار جای مقادیر در view مقدارهای ورودی رو بگذارید:


"select * from T1 join T2 ... where F1 = " + String1

البته این کار ساده ترین کار هست و شما باید کمی رو امنیت اون کار کنید.

dontspeak
پنج شنبه 16 تیر 1390, 02:09 صبح
ممنون از پاسختون
نمی دونم شما با چه زبان برنامه نویسی کار میکنید. ما توی asp همونطور که گفتم یه کنترل داریم به نام sqldatasource این کنرل برای ما تمام این کارها رو انجام میده. مثلا خیلی راحت می تونم برم توی محیط ویزارد این کنترل و بهش بگم که where مورد نیازش رو از querystring یا cookie و یا ... بگیره. حالا دلیل اینکه از این کار استفاده نمی کنم اینه که امنیت view بیشتره. من یه view درست میکنم بعد بجای اینکه در sqldatasource تیبل رو انتخاب کنم این view رو انتخاب میکنم و اینجوری همه چیز از دید هکرها پنهان میمونه. توی این حالت اون بحث امنیتی هم که مد نظر شما بود برطرف میشه. برای ما استفاده از sqldatasource امنیتش بیشتره چون کد نویسی نداره و خود مایکروسافت امنیت رو برقرار کرده. کدی که sqldatasource توی این حالت تولید میکنه البته بدون view این میشه


SelectCommand="SELECT * FROM [Table1] WHERE ([strin] = @strin)"

حالا من این کد رو کپی میکنم توی view ولی ارور میده میگه که شما باید این متغیر @strin رو بشناسونید. حالا من مشکلم اینجاست که چطور بشناسونم؟