VisualStudioとASP.NETの両方を初めて使用します。
VSクエリビルダーに次のコードがあります。
SELECT [Column1], [Column2], Column3 FROM [Table] WHERE (Column3 = ?)
問題は、フィールド全体でWHERE句が満たされた結果のみが表示されることです。パラメータがフィールドの一部である場合の結果も必要です。Accessでは、指定された値に対して同様のことが行われます*value*
。助けてください。
VisualStudioとASP.NETの両方を初めて使用します。
VSクエリビルダーに次のコードがあります。
SELECT [Column1], [Column2], Column3 FROM [Table] WHERE (Column3 = ?)
問題は、フィールド全体でWHERE句が満たされた結果のみが表示されることです。パラメータがフィールドの一部である場合の結果も必要です。Accessでは、指定された値に対して同様のことが行われます*value*
。助けてください。
試す:
WHERE (Column3 like '%' + ? + '%')
パラメータという単語についてはすでに説明したので、 SQLインジェクションと変換の問題Sql-Parameters
を回避するために使用することをお勧めします。
string sql = @"
SELECT
[Column1], [Column2], Column3
FROM
[Table]
WHERE
(Column3 LIKE @searchPattern)";
using(var con = new SqlConnection(connectionString))
using(var cmd = new SqlCommand(sql, con))
{
cmd.Parameters.AddWithValue("@searchPattern", string.Format("%{0}%", str));
con.Open();
using(var reader = cmd.ExecuteReader())
{
while(reader.Read())
{
string col1 = reader.GetString(0); // for example etc....
}
}
}