我做了一个程序,显示了数据库中的一个表。
声明如下:
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语句中给出的该日期的表。 但我想让用户有机会在文本框中输入另一个日期。 文本框应更改报表中的日期。
我在这里看:
但这不是我遇到的相同问题。 如果这是重复项,而我只是傻傻地找到它,请告诉我。
答案 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);