Вставьте внешний ключ в таблицу с помощью запроса SQL, используя C# - PullRequest
0 голосов
/ 24 января 2020

У меня есть база данных с 3 таблицами Identification, Identification_group и Group.

Таблица Identification_group имеет 2 столбца внешнего ключа, Identificaiton_id и Group_id.

В моей форме вы можете выбрать номер группы, и он вернёт правильный Group_id к таблице Identification_group.

Можно ли написать запрос SQL, который использует последние Identification_id и Group_id (из поля выбора в моей форме) и записать его в таблицу Identification_group?

string sqlquery1 = "Insert into [dbo].[identification_group] (fk_group_id,fk_identification_id values (@fk_group_id,@fk_identification_id;";
            SqlCommand schreiben = new SqlCommand(sqlquery1, myConnection);
            myConnection.Open();
            schreiben.Parameters.AddWithValue("@fk_identification_id", intidentification_id);
            schreiben.Parameters.AddWithValue("@fk_group_id", Wil_Jls_idComboBox.SelectedValue);
schreiben.CommandText = sqlquery;
schreiben.ExecuteNonQuery();
            myConnection.Close();

Извините за плохое форматирование, впервые выкладываю сюда.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 24 января 2020

Пожалуйста, попробуйте следующее:

У вас есть проблема с вашим заявлением SQL, из-за которого вы не закрыли скобки. Кроме того, вам нужен только символ @ в операторе SQL, а не код C#.

// Create the query
string query = "Insert into [identification_group] (fk_group_id, fk_identification_id) values (@fk_group_id, @fk_identification_id)";

// Create the SQL command
SqlCommand schreiben = new SqlCommand(query, myConnection);

// Open the SQL connection
myConnection.Open();

// Bind the parameters
schreiben.Parameters.AddWithValue("fk_identification_id", intidentification_id);
schreiben.Parameters.AddWithValue("fk_group_id", Wil_Jls_idComboBox.SelectedValue);

// Bind the command
schreiben.CommandText = query;

// Execute the command
schreiben.ExecuteNonQuery();

// Close the connection
myConnection.Close();
0 голосов
/ 24 января 2020

Вам нужно выполнить SqlCommand в конце и, возможно, получить результат с помощью устройства чтения данных.

Пример:

private static void ReadOrderData(string connectionString)
{
    string queryString = 
        "SELECT OrderID, CustomerID FROM dbo.Orders;";
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(
            queryString, connection);
        connection.Open();
        using(SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}, {1}",
                    reader[0], reader[1]));
            }
        }
        connection.Close();
    }
}
...