Конечно. Это выглядело бы примерно так:
var cmd = new SqlCommand("insert into invoice (
Student_id,
Amount,
Fee_description,
issue_date,
month
)
select student.Student_id
, Fee.Fee_Amount
, Fee.fee_type
, @issDat
, @mon
from ...", "conn str here");
cmd.Parameters.AddWithValue("@issDat", issueDateDateTimePicker.Value);
cmd.Parameters.AddWithValue("@mon", monthDateTimePicker.Value);
Я использовал AddWithValue, чтобы быстро объяснить концепцию Google для блога под названием «Можем ли мы прекратить использовать AddWithValue уже» для долгого обсуждения того, как отойти отэто (это разумно в этом контексте, поскольку оно не используется для фильтрации), но сейчас я пытаюсь связать концепцию:
Оператор sql может принять фиксированное значение от вас:
SELECT 'hello' FROM table
Он также может принимать фиксированный параметр, который вы предоставляете:
SELECT @pHello FROM table
Следовательно, добавление параметров и их сохранение с фиксированными значениями из ваших дневных сборщиков (или datetime.Now или чего-либо другого) в порядке, и чтоВы должны делать вставку фиксированных значений, используя инструкцию стиля INSERT ... SELECT
Примечание: не ясно, связаны ли месяц и дата выпуска, но если они совпадают, то вы нехранить его дважды - вы можете извлечь месяц из даты в любой момент.