【发布时间】:2020-11-11 14:09:06
【问题描述】:
这是我的模特:
public class ComplaintModel
{
public string CustomerName { get; set; }
public string ValuesFromSalesOrder
{
get
{
return CustomerName;
}
}
}
这是我运行查询以从 SQL 获取数据的地方:
public class DataAccess
{
public List<ComplaintModel> FindOrderNumber(string _OrderNumber)
{
using(SqlConnection conn = new SqlConnection(ConnectionString.MJMconnString))
{
var output = conn.Query<ComplaintModel>($"SELECT c.name FROM SalesOrder so JOIN Customer c ON so.customerID = c.id WHERE so.number = ' {_OrderNumber} '").ToList();
return output;
}
}
}
最后,我在这里尝试将 SQL 的返回值显示到 TextBox...
public Complaints_Form()
{
InitializeComponent();
}
private void UpdateBinding()
{
customer_name.DataBindings.Add("Text", orderNumb, "ValuesFromSalesOrder"); // This is the textbox
}
List<ComplaintModel> orderNumb = new List<ComplaintModel>();
private void searchButton_Click(object sender, EventArgs e)
{
DataAccess db = new DataAccess();
orderNumb = db.FindOrderNumber(orderNumber.Text);
UpdateBinding();
}
问题
第一次尝试单击Search Button - 没有任何反应,CustomerName 文本框没有更新。
我第二次点击Search Button - 我得到这个错误:System.ArgumentException: 'This causes two bindings in the collection to bind to the same property. Parameter name: binding'
我已经在 SQL Server 中测试了查询 - 它肯定会返回一个值。
我哪里错了?以及如何让它发挥作用。
研究
我用过这个答案
【问题讨论】:
-
这能回答你的问题吗? Winforms, databinding, Listbox and textbox
-
您可以从阅读异常消息开始。
-
@IanKemp 谢谢 - 现在会阅读
标签: c#