Команда INSERT
поставляется в двух вариантах:
(1) либо у вас есть все доступные значения в виде литералов или переменных SQL Server - в этом случае вы можете использовать подход INSERT .. VALUES()
:
DECLARE @User_ID INT;
SELECT @User_ID = User_ID
FROM dbo.Users
WHERE (some condition here) -- most likely
INSERT INTO dbo.Attendance (User_ID, [Month], [Year], Status)
VALUES (@User_ID, @Month, @Year, @Status)
Примечание: я бы рекомендовал всегда явно указывать список столбцов для вставки данных - таким образом, у вас не будет никаких неприятных сюрпризов если вдруг в вашей таблице есть дополнительный столбец, или если в ваших таблицах есть IDENTITY
или вычисляемый столбец. Да - это чуть-чуть больше работы - один раз - но тогда ваше утверждение INSERT
будет настолько надежным, насколько это возможно, и вам не придется постоянно возиться с ним, если ваша таблица изменится. [ 1116]
(2) , если у вас нет всех ваших значений в виде литералов и / или переменных, но вместо этого вы хотите полагаться на другую таблицу, несколько таблиц или представлений, чтобы предоставить значения, вы можете использовать подход INSERT ... SELECT ...
:
INSERT INTO dbo.Attendance (User_ID, [Month], [Year], Status)
SELECT User_ID, @Month, @Year, @Status
FROM dbo.Users
Здесь вы должны определить ровно столько элементов в SELECT
, сколько ожидает ваш INSERT
- и это могут быть столбцы из таблицы (ов) (или представлений), или они могут быть литералами или переменными. Опять же: явно предоставьте список столбцов для вставки - см. Выше.
Вы можете использовать один или другой - но вы не можете смешать два - вы не можете использовать VALUES(...)
и затем иметь запрос SELECT
в середине вашего списка значений - выберите одно из двух - придерживайтесь его. И конструкция WITH VALUES(....)
совершенно не является допустимым кодом T-SQL ...
Для получения более подробной информации и дальнейшего углубленного освещения см. в официальной электронной документации по MSDN SQL Server Books на INSERT
- отличный ресурс для всех вопросов, связанных с SQL Server!
Взгляните на WKHTMLTOPDF. Это открытый исходный код, основанный на webkit и бесплатный.
Мы написали небольшой учебник здесь .
HTML / поддержка CSS в iText / iTextSharp является очень простым. Это - просто не правильный инструмент для преобразования HTML в PDF. Смотрите на эти решения вместо этого:
Они представляют HTML к изображению. Затем можно вставить их в PDF с iTextSharp.
Иначе Вы могли попытаться преобразовать HTML-> XSL-FO-> PDF, но включая CSS существует целая другая вещь.
Попробуйте конвертер PDF Duo .NET. Вы можете подать заявку на поддержку, если вам нужна особая функция.
http://www.duodimension.com/html_pdf_asp.net/downloads/html_pdf_net.zip