Ερωτηση για asp.net, sql server και Like statement

Πληροφορίες σχετικές με την ASP, ASP.NET και με τις εφαρμογές που είναι γραμμένες με αυτήν.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
v_pasch
Δημοσιεύσεις: 74
Εγγραφή: 03 Ιουν 2006 14:51
Επικοινωνία:

Ερωτηση για asp.net, sql server και Like statement

Δημοσίευση από v_pasch » 25 Μάιος 2007 14:06

Καλημερα. Θελω σε asp.net και sql server να εκτελεσω ενα query αλλα χρειαζομαι την συνταξη της like.
Πως μπορω να γραψω το παρακατω ετσι ωστε να δουλευει?

WHERE surname LIKE @search" & "%", οπου @search" & "%" = 'name%'

Άβαταρ μέλους
georiege
Δημοσιεύσεις: 79
Εγγραφή: 09 Ιούλ 2007 11:29
Επικοινωνία:

Ερωτηση για asp.net, sql server και Like statement

Δημοσίευση από georiege » 09 Ιούλ 2007 13:00

Kalimera !
H apanthsh einai kapos kathisterimeni giati molis tora einai to post.

To query soy prepei na ginei kapos etsei :

WHERE surname LIKE '%" & metablhti & "%'

Shmeiosh , den prepei na xrisomopoihseis parametro , apla kapoio string sthn thesi toy metablhti .
I do this for Aiur

http://www.aspx.gr

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Ερωτηση για asp.net, sql server και Like statement

Δημοσίευση από skeftomilos » 09 Ιούλ 2007 17:14

Η χρήση παραμέτρων είναι γενικά καλή πρακτική, κυρίως για αποφυγή sql injections. Τα σύμβολα % μπορούν να μπουν είτε .NET κώδικα είτε σε TSQL.

Κώδικας: Επιλογή όλων

SqlParameter p = new SqlParameter("@Search", SqlDbType.NVarChar);
p.Value = "%" + EscapeLikeTerm(search) + "%";

string query = "SELECT * FROM Members WHERE surname COLLATE Greek_CI_AI LIKE @Search";
ή

Κώδικας: Επιλογή όλων

SqlParameter p = new SqlParameter("@Search", SqlDbType.NVarChar);
p.Value = EscapeLikeTerm(search);

string query = "SELECT * FROM Members WHERE surname COLLATE Greek_CI_AI LIKE '%' + @Search + '%'";
Η ρουτίνα EscapeLikeTerm χρειάζεται για να γίνουν escape οι ειδικοί χαρακτήρες % _ [ ]

Κώδικας: Επιλογή όλων

protected static string EscapeLikeTerm(string term) {
  return System.Text.RegularExpressions.Regex.Replace(term, @"([%_\[\]])", "[$1]");
}
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Απάντηση

Επιστροφή στο “ASP, ASP.NET”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες