現時点では、データベースに 4 つの行が含まれており、クエリ対象の特定の列に次の値があると想定しています。
クエリで使用する必要がある「x:1」などの値が渡されていると述べていますが、クエリが最初の 3 つのレコード (「x:」の値を持つレコード) を返す必要があることを暗示しています。 1'、'x:2'、および 'x*'。つまり、'x:1' が渡されますが、実際には 'x' で始まる値を持つすべてのレコードを検索する必要があります。
その場合は、クエリを発行する前に C# コードの値を変更することをお勧めします。検索値が本当に 'x:1' の形式である場合は、SQL クエリに渡す前に最後の 2 文字を切り取ることができます。
string searchValue = "x:1"; // this presumably actually comes from user input
searchValue = searchValue.Substring(0, searchValue.Length - 2);
// Now searchValue is just "x", so go ahead and create your SQL query using the 'LIKE' operator
ただし、これは実際のデータを単純化したものにすぎないと感じているため、正確にするのが難しく、エラーチェックを含む例を提供するのも難しくなります。
もう少し複雑な例として、ユーザーが与える search-value は、文字列、または文字列の後にコロンが続き、さらに文字が続くものである可能性があります。その場合、与えられた文字列にコロンが含まれているかどうかを確認する必要があります。コロンが含まれている場合は、コロンとそれに続くものを切り落とす必要があります。
string searchValue = "abc:def";
if (searchValue.Contains(":"))
searchValue = searchValue.Substring(0, searchValue.IndexOf(":"));
// Having stripped off ":def", you're left with "abc"
これで、LIKE 演算子を使用してクエリを発行できます。これは、TcKs が彼の回答で既に示したとおりです。たとえば、次のように、既にあるクエリ コードを変更できます。
strSelect = string.Format("[{0}] LIKE '{1}'", colName, ValueToSearch);
rows = tempTable.Select(strSelect);
LIKE 演算子を使用して、"abc"で始まる値を持つレコードを探しています。