Как список элементов из таблицы с подстановочными знаками в sqlite с помощью C #? - PullRequest
1 голос
/ 19 ноября 2011

Как я могу получить элементы из таблицы, используя подстановочный знак?

Я сделал код примерно так.Что здесь написано?Безопасно ли, если я помещу это в цикл?

private void Pokaz()
    {
        String sql = "SELECT [element] FROM [table] LIKE @Word";
        SQLiteConnection connection = new SQLiteConnection(@"Data Source=C:\Temp2\dictionary.s3db");
        connection.Open();
        SQLiteCommand cmd = new SQLiteCommand(connection);
        cmd.CommandText = sql;
        cmd.Parameters.AddWithValue("@Word", "%" + "dog" + "%");
        DataTable dt = new DataTable();
        SQLiteDataReader reader = cmd.ExecuteReader();
        dt.Load(reader);
        reader.Close();
        connection.Close();
        dataGridView1.DataSource = dt;
    }

Я изменил на String sql = "SELECT [element] FROM [table] where [element] LIKE \'@Word\'"; Но теперь я получаю пустой результат.


Я попробовал и этот метод.Исправлено и работает.Еще выше нет.

List<string> list = new List<string>();
        string connectionString = @"Data Source=C:\Temp2\dictionary.s3db";
        string sql = "SELECT [element] FROM [table] where [element] LIKE  \'%dog%\' ";

        using (var connection = new SQLiteConnection(connectionString))
        {
            using (var command = new SQLiteCommand(sql, connection))
            {
                connection.Open();

                SQLiteDataReader rd = command.ExecuteReader();
                while (rd.Read())
                {
                    list.Add(rd[0].ToString());
                }       

            }
        }

1 Ответ

0 голосов
/ 19 ноября 2011

Вы пробовали

String insSQL = "SELECT [element] FROM [table] like @Word"; //% search with prefix and postfix

SQLiteCommand cmd = new SQLiteCommand(insSQL);
cmd.Parameters.AddWithValue("@Word", "%" + "dog" + "%");

?

...