根据Textbox中的用户输入构建查询,并将其显示在另一个文本框中

时间:2014-04-15 08:53:47

标签: c# wpf datagrid ado.net db2

我想要实现的是从用户(userID)获取一个存储在TextBox中的参数。用户在TextBox中输入一个示例UserID,单击“查看”按钮,相应列中的一些记录将显示在屏幕上的文本框中。我不想使用DataGrid,因为它总是看起来像表:)。

问题是我不知道如何将用户输入放入我的DB2Command中,然后在屏幕上的文本框中显示select中的一些值:/。

这是我的代码:

查看按钮

        iDB2Connection nc = new iDB2Connection();
        nc.ConnectionString = "DataSource=vf05.it.volvo.se; DefaultCollection=VF05;";
        nc.Open();

        iDB2Command cmd = new iDB2Command("Select AAUSER, AANODE, AAORGN from     library.file where AAUSER = @UserID ", nc);
        cmd.Parameters.AddWithValue("UserID", UserInput.Text);

        iDB2DataReader dr = cmd.ExecuteReader();

我应该向UserInput textBox添加什么代码以及如何在文本框中显示选择结果? 我甚至可以使用DataGrid,然后在文本框中显示DataGrid中的一些值,但我不知道如何在DataGrid中显示ExecuteReader显示。我可能应该阅读一些关于数据绑定的文章......

P.S

我试图使用此

将select语句的结果放入DataGrid
iDB2DataReader dr = cmd.ExecuteReader();
dataGrid1.ItemsSource = dr;

其中cmd是:

iDB2Command cmd = new iDB2Command("Select AAUSER, AANODE, AAORGN from T0T02PD.T0F001 where AAUSER = 'A0390944' ", nc);

这似乎工作正常,但无论如何我想将所选列中的数据放入TextBoxes。怎么做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以在ViewModel中的属性上创建一个带有Binding的TextBox,并将绑定放在mode = TwoWay中,以便从用户界面更新ViewModel值。

在ViewModel中:

public int UserID { get; set; }

在您的Xaml中:

<TextBox Text="{Binding UserID, mode=TwoWay}"/>

之后,您可以将结果项存储在List中,并将其绑定到ListBox中的ItemsSource属性。

在ViewModel中:

public List<YourResultType> Items { get; private set; }

在您的Xaml中:

<ListBox ItemsSource="{Binding Items}"/>

我希望它会对你有所帮助。