如何从文本框中获取日期并将其用于SELECT语句

时间:2018-12-06 12:25:01

标签: c# sql wpf datepicker

我做了一个程序,显示了数据库中的一个表。

声明如下:

string sql = ("select CCase.RefNo AS Az, EventTemplate.EventCode AS
    Vorgang from ikaros.CCase join ikaros.Event on CCase.ID =
    Event.CCaseID join ikaros.EventTemplate on Event.EventTemplateID  =
    EventTemplate.ID where EventTemplate.EventCode='IRVB' and
    Event.EventDate ='2014-07-03' order by CCase.RefNo ASC");

现在有了

Event.EventDate='2014-07-03'

我得到SELECT语句中给出的该日期的表。 但我想让用户有机会在文本框中输入另一个日期。 文本框应更改报表中的日期。

我在这里看:

Try 1

Try 2

但这不是我遇到的相同问题。 如果这是重复项,而我只是傻傻地找到它,请告诉我。

1 个答案:

答案 0 :(得分:0)

有问题的添加链接显示您正在使用WPF,

如果您的日期来自TextBox,则应使用TextBox.Text属性从用户输入中读取日期,例如

var date = TextBox1.Text;

OR

如果您使用DatePicker,则可以使用DatePicker.SelectedDate.Value.Date属性读取用户输入

 var date = DatePicker1.SelectedDate.Value.Date;

然后将其传递给sql查询,如

string sql = ("select ... where EventTemplate.EventCode='IRVB' and
    Event.EventDate ='"+ date +"' order by CCase.RefNo ASC");

注意:始终使用准备好的语句(参数化查询)来防止sql注入攻击。

我不确定您使用的是ADO.NET,但参数化查询看起来像

string sql = ("select ... where EventTemplate.EventCode='IRVB' and
        Event.EventDate = @date order by CCase.RefNo ASC");

SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.AddWithValue("@date", date);