繁体   English   中英

我们可以在 c# winform 中插入一些数据以及插入值 select 查询吗

[英]Can we insert some data along with insert value select query in c# winform

我想插入日期和月份(在两个 datetimepicker 中)以及插入值 select 查询。

我的invoice表中有五列

Student_id, Amount, Fee_description, issue_date, month

我可以插入前三列的值,但其余两列是 null,我不知道将 datetimepicker 值放在哪里?

我在表单的设计视图中为日期和月份选择了一个 datatimepicker

insert into invoice (Student_id, Amount, Fee_description, issue_date, month)
    select 
        student.Student_id, 
        Fee.Fee_Amount, Fee.fee_type
    from 
        student
    join 
        parent on student.father_nic = parent.father_nic
    join 
        allocate_class on student.Student_id = allocate_class.Student_id
    join 
        class on class.class_id = allocate_class.class_id
    join 
        session on allocate_class.session_id = session.session_id
    join 
        Fee on class.class_id = Fee.class_id
    where 
        session.session_id = 1
        and Fee.fee_type = 'Tution Fee'
        and student.status = 'active'

在上面的查询中在哪里添加两个 datetimpicker 值?

当然。 它看起来像这样:

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 来快速解释这个概念——谷歌为一个名为“我们可以停止使用 AddWithValue 吗”的博客进行了长时间讨论如何摆脱它(在这种情况下它是合理的,因为它不被用于过滤)但是现在我试图联系的概念是:

sql 语句可以从您那里获取一个固定值:

SELECT 'hello' FROM table

它还可以采用您提供的固定参数:

SELECT @pHello FROM table

因此,添加参数并使用您的日期时间选择器(或 datetime.Now 或其他)中的固定值归档它们是好的,并且您应该使用 INSERT... SELECT 样式语句插入固定值

旁注,尚不清楚月份和发行日期是否相关,但如果它们是相同的日期,那么您不需要存储两次 - 您可以随时从日期中提取月份。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM