SQL-запрос корректен, но не заполняет таблицу данных - PullRequest
0 голосов
/ 24 марта 2019

Я пытаюсь заполнить таблицу следующим запросом:

SELECT 
    recipes.Name, Instructions, recipes.Preperation_Time, Author 
FROM 
    RecipeIngredients
INNER JOIN 
    recipes ON recipes.Recipe_ID = RecipeIngredients.Recipe_ID
INNER JOIN 
    Ingredients ON Ingredients.Ingredient_ID = RecipeIngredients.Ingredient_ID
WHERE 
    ingredients.Name IN ('eggs')

Когда я запускаю этот запрос в файле .sql, я получаю желаемые результаты:

enter image description here

Однако, когда я пытаюсь заполнить таблицу данными с помощью запроса, я не получаю никаких результатов. Это не проблема с моей базой данных и кодом, как при использовании простого запроса, такого как:

"Select * FROM recipes"

Я получаю все рецепты внутри моего обзора данных:

enter image description here

Я что-то здесь упускаю?

Вот мой код формы и класса соединений с БД.

private void resultsWindow_Load(object sender, EventArgs e)
{
    // Format ingredient array for SQL Syntax
    for(int i = 0; i< ingredientCount; i++)
    {
        string ing = ingredientArray[i];
        string editedIng = "'" + ing + "'";
        ingredientArray[i] = editedIng;
    }

    string ingredientString = string.Join(", ", ingredientArray);

    // get connection string
    string connectionString = Properties.Settings.Default.ConnectionString;

    DataTable recipeDataTable = new DataTable();
    conn = new DatabaseConnections(connectionString);

    conn.openConnection();

    // Get datatable
    recipeDataTable = conn.getRecipes(ingredientString);

    // Display data in grid view
    recipesDataGrid.DataSource = recipeDataTable;
    recipesDataGrid.Refresh();
}

public DataTable getRecipes(string ingredientString)
{
    string sqlString = ("SELECT recipes.Name, Instructions, recipes.Preperation_Time, Author FROM RecipeIngredients" +
                           " INNER JOIN recipes ON recipes.Recipe_ID = RecipeIngredients.Recipe_ID" +
                           " INNER JOIN Ingredients ON Ingredients.Ingredient_ID = RecipeIngredients.Ingredient_ID" +
                           " WHERE ingredients.Name IN ('eggs')");

    string sqlString_ = ("Select * FROM recipes");

    DataTable recipeDataTable = new DataTable();

    openConnection();

    SqlCommand cmd = new SqlCommand(sqlString_, connectionToDB);
    SqlDataAdapter da = new SqlDataAdapter(cmd);

    // Fill dataset
    da.Fill(recipeDataTable);

    closeConnection();

    return recipeDataTable;
}

1 Ответ

0 голосов
/ 24 марта 2019

Я не пробовал ваш код, но, возможно, вы просто добавили данные в таблицу, и они еще не проверены. Не могли бы вы попробовать это утверждение в вашем редакторе T-SQL:

совершение сделки;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...