PDA

View Full Version : جستجو در رشته



project80888
پنج شنبه 06 بهمن 1390, 17:01 عصر
جستجو در رشته

سلام دوستان
متن زیر را در نظر بگیرید
select * from Tbl1
where v1=@Parm1 and v2=@param2 or v3=@param4 and name Like '+@Param5+'
من نیاز به تکه کدی دارم که پارمترهای متن بالا را به من نمایش دهد
یعنی خروجی کد من مقادیر زیر را به من نمایش بدهد
@Param1
@param2
@param3
@param4
@param5
اگر از دوستان کسی بتونه منو راهنمایی کنه و جواب سوال منو بده ممنون میشم

Hybrid
پنج شنبه 06 بهمن 1390, 17:16 عصر
سلام دوست عزیز امیدوارم حالت خوب باشه.... شما میخواین اسم پارامتر ها رو برگردونین یا مقدار پارامترها رو ؟؟؟

project80888
پنج شنبه 06 بهمن 1390, 17:19 عصر
اسم پارامترها
@Param1 @param2 @param3..............
در واقع میخواهم در یک دستور Select اسم تمام پارامترهای داشته باشم

project80888
پنج شنبه 06 بهمن 1390, 17:21 عصر
تا این قسمت پیش رفتم که تونستم ایندکس اول مکان پارامترها را بدست بیاورم

project80888
پنج شنبه 06 بهمن 1390, 17:23 عصر
for (int j = 0; j <= a; j++) {
if (str().Contains("@")) {
b = str().IndexOf("@", b);
MessageBox.Show(str().Substring(b, str().IndexOf(" ", b)));
b = b + 1;
if (b == 0) {
j = a;
}
}

}

project80888
پنج شنبه 06 بهمن 1390, 17:29 عصر
string str = null;
string st = null;
str = txtquery.Text;
int a = 0;
int b = 0;
int ind = 0;
a = str.Length;
b = 0;
for (int j = 0; j <= a; j++) {
if (str.Contains("@")) {
b = str.IndexOf("@", b);
ind = str.IndexOf(" ", b);
st = str.Substring(b, ind - b);
MessageBox.Show(st);
b = b + 1;
if (b == 0) {
j = a;
}
}

shadi khanum
پنج شنبه 06 بهمن 1390, 23:58 عصر
این تابع کاری که میخوای رو واست انجام میده.(به شرطی که بعد از تموم شدن نام پارامترت حتما فاصله باشه) البته اگه دستورت توسط builder درست شده باشه خیلی راحت تر میتونی این کار رو بکنی
Private Sub GetParamName()
Dim s As String = "select * from Tbl1 where v1=@Parm1 and v2=@param2 or v3=@param4 and name Like '+@Param5+'", Res As String = "", total As String = ""
Dim index1 As Integer = -1, index2 As Integer = -1
index1 = s.IndexOf("@")
While index1 <> -1
index2 = s.IndexOf(" ", index1)
If index2 <> -1 Then
Res = s.Substring(index1, index2 - index1)
s = s.Replace(Res, "")
total += Res + ","
Else
s = s.Remove(index1, 1)
End If
index1 = s.IndexOf("@")
End While
If total.Length > 1 Then
total = total.Substring(0, total.Length - 1)
End If
MessageBox.Show(total)
End Sub