Как мы можем использовать данные в таблицах результатов при кодировании с помощью SQL в Visual Studio? - PullRequest
0 голосов
/ 11 июня 2019

Я пишу код в Visual Studio 2013 и SQL Server 2012. Иногда нам приходится использовать данные в таблицах результатов для нашего кода. Например, если мы сравним две таблицы с использованием метода SELECT, EXCEPT, мы сможем увидеть дифференцированные записи между этими двумя таблицами в окне результатов в виде другой таблицы.

Итак, я спросил, если мне нужно добавить эти данные результатов в таблицу в моей базе данных, как я могу это сделать? Это возможно или нет, и есть ли способ сделать это?

Sample

1 Ответ

0 голосов
/ 11 июня 2019

Если вы запрашиваете SQL, вы можете сделать что-то вроде этого для уже созданной таблицы:

INSERT INTO NEW_TABLE (col1,col2,...)
SELECT col1,col2,... 
FROM YOUR_TABLE 
EXCEPT SELECT ...

или если вы хотите создать новую таблицу с использованием этого запроса без указания каждого столбца (скопируйте спецификации столбцов из исходной таблицы) , вы можете сделать что-то вроде этого:

SELECT ... 
INTO NEW_TABLE 
FROM YOUR_TABLE
EXCEPT 
SELECT ...
FROM ANOTHER_TABLE

Если ваша новая таблица хочет отбрасываться после обработки ваших данных, рассмотрите #temptable или @tablevariable.

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

using System;
using System.Data;
//...
DataTable dttbl = new DataTable();
dttbl.TableName = "YOUR_TABLE";
dttbl.Load(new SqlCommand("SELECT ...",sqlConnection).ExecuteReader());
//process your datatable using indexing like this 
dttbl.Rows[(row_number (int))][(column_name (string), column_position (int))] = "Processed";
dttbl.Rows[0]["col1"] = "Processed"; //This line will change the value in cell of the first record in column named "col1" to "Processed". 

EDIT *: Подробнее о dataTable

Чтобы распечатать всю DataTable

//Print out the columns name
for(int i=0;i<dttbl.Columns.Count;i++)
    Console.Write(dttbl.Columns[i].ColumnName + " ");
Console.Write("\n");
//Print out the data
for(int i=0;i<dttbl.Rows.Count;i++)
{
    for(int k=0;k<dttbl.Columns.Count;k++)
    {
        Console.Write(dttbl.Rows[i][k] + " ");
    }
    Console.Write("\n");
}

Примечание: SQL - это язык запросов к базе данных, а C #, VB или другой язык .NETэто язык программирования.Короче говоря, язык запросов к базе данных - это способ общения языка программирования с базой данных.

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