Ознакомьтесь со следующей статьей о защите кода от SQL-инъекций: Защита от SQL-инъекций в ASP.NET
В вашем случае вы можете захотеть использовать параметризованные запросы.Оформить заказ «Шаг 3. Использование параметров с динамическим SQL».
Вы можете использовать что-то похожее на это:
string connectionString = "...";
string schema = "...";
string value = "...";
using (SqlConnection connection = new SqlConnection(connectionString))
{
string sql = string.Format("SELECT [data] FROM {0}.[MyOBjects] WHERE data.exist('/data[\"theValue\"=sql:variable(\"@value\")]') = 1", schema);
SqlCommand sqlCommand = new SqlCommand(sql, connection);
sqlCommand.CommandType = System.Data.CommandType.Text;
sqlCommand.Parameters.Add(new SqlParameter("@value", System.Data.SqlDbType.NVarChar, 255) { Value = value });
....
}