ВСТАВИТЬ СТРОКУ В ТАБЛИЦУ
Ключевое слово INSERT INTO используется для вставки записей в таблицу. Существует 2 способа вставки записей в таблицу.
- Вставка с помощью простого запроса
- Вставка с использованием параметризованного запроса
Прямая вставка записи в таблицу
Это самый простой способ вставить записи в таблицу, но я настоятельно избегаю его, потому что он менее безопасен, чем параметризованный запрос.
1 2 |
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); |
или
1 2 |
INSERT INTO table_name VALUES (value1, value2, value3, ...); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
using System; using System.Data.SqlClient; namespace InsertRecords { class Program { static void Main(string[] args) { SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"); string query = "INSERT INTO Products (Name,Price,Date) VALUES('LED Screen','$120','27 January 2017')"; SqlCommand cmd = new SqlCommand(query, con); try { con.Open(); cmd.ExecuteNonQuery(); Console.WriteLine("Records Inserted Successfully"); } catch (SqlException e) { Console.WriteLine("Error Generated. Details: " + e.ToString()); } finally { con.Close(); Console.ReadKey(); } } } } |
ПАРАМЕТРИЗОВАННЫЙ ЗАПРОС
Мы всегда предпочитаем использовать параметризованный запрос вместо простого SQL-запроса, потому что он предотвращает атаки SQL-инъекции. Вот пример программирования, в котором вы можете узнать, как использовать параметризованный запрос в C# SQL.
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
using System; using System.Data.SqlClient; namespace InsertRecords { class Program { static void Main(string[] args) { SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"); //Replaced Parameters with Value string query = "INSERT INTO Products (Name, Price, Date) VALUES(@Name, @Price, @Date)"; SqlCommand cmd = new SqlCommand(query, con); //Pass values to Parameters cmd.Parameters.AddWithValue("@Name", "USB Keyboard"); cmd.Parameters.AddWithValue("@Price", "$20"); cmd.Parameters.AddWithValue("@Date", "25 May 2017"); try { con.Open(); cmd.ExecuteNonQuery(); Console.WriteLine("Records Inserted Successfully"); } catch (SqlException e) { Console.WriteLine("Error Generated. Details: " + e.ToString()); } finally { con.Close(); Console.ReadKey(); } } } } |
КОПИРОВАНИЕ ОДНОЙ ТАБЛИЦЫ В ДРУГУЮ ТАБЛИЦУ
В большинстве случаев вам нужно скопировать данные одной таблицы в другую таблицу. В этом примере я покажу вам, как скопировать таблицу в SQL.
Здесь я создал еще один элемент таблицы,который будет содержать скопированные данные из таблицы PRODUCTS.
1 |
INSERT INTO Items(Column1,Column2,Column3) SELECT Column1,Column2,Column3 FROM Products |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
using System; using System.Data.SqlClient; namespace InsertRecords { class Program { static void Main(string[] args) { SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"); //Replaced Parameters with Value string query = "INSERT INTO Items(Name,Price,Date) SELECT Name,Price,Date FROM Products"; SqlCommand cmd = new SqlCommand(query, con); try { con.Open(); cmd.ExecuteNonQuery(); Console.WriteLine("Records Inserted Successfully"); } catch (SqlException e) { Console.WriteLine("Error Generated. Details: " + e.ToString()); } finally { con.Close(); Console.ReadKey(); } } } } |