C# 绑定组合框中的空项为NULL
如何在绑定的C# 绑定组合框中的空项为NULL,c#,.net,winforms,data-binding,C#,.net,Winforms,Data Binding,如何在绑定的组合框中有一个空项,它使用NULL作为插入或更新的值 使用下面的代码,我可以手动添加额外的行。列inspector\u id是FK关系的主键。我必须设置inspector\u id=-1,因为C不允许int为null。但是,插入(或更新)失败,因为数据库中没有inspector\u id:-1 private void ItemInfo_Load(object sender, EventArgs e) { // TODO: This line of code loads da
组合框
中有一个空项,它使用NULL
作为插入或更新的值
使用下面的代码,我可以手动添加额外的行。列inspector\u id
是FK关系的主键。我必须设置inspector\u id=-1
,因为C不允许int
为null
。但是,插入(或更新)失败,因为数据库中没有inspector\u id:-1
private void ItemInfo_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'someDBDataSet.inspector' table. You can move, or remove it, as needed.
this.inspectorTableAdapter.ClearBeforeFill = false;
someDBDataSet.inspectorRow newRow = this.someDBDataSet.inspector.NewinspectorRow();
newRow.inspector_id = -1; // Since an int in C# cannot be null
newRow.fullName = "(none)";
newRow.employeeCode = "";
this.someDBDataSet.inspector.AddinspectorRow(newRow);
this.inspectorTableAdapter.Fill(this.someDBDataSet.inspector);
//this.inspectorTableAdapter.ClearBeforeFill = false;
// TODO: This line of code loads data into the 'someDBDataSet.item' table. You can move, or remove it, as needed.
this.itemTableAdapter.Fill(this.someDBDataSet.item);
}
在尝试了各种方法后,我最初决定:
private void ItemInfo_Load(object sender, EventArgs e)
{
this.inspectorTableAdapter.Fill(this.someDBDataSet.inspector);
this.itemTableAdapter.Fill(this.someDBDataSet.item);
}
private void noInspector_btn_Click(object sender, EventArgs e)
{
inspector_idComboBox.SelectedItem = null;
}
我没有在组合框中添加虚拟项,而是添加了一个(链接)按钮来清除组合框
优点:
组合框将被清除
tableAdapter
设置item.inspector\u id=NULL
inspector
字段的其他表单控件保持不变(因为没有要使用的“空”inspector
行)SelectedItem
为空时,inspector\u id组合框中不显示文本。我更喜欢在框中显示类似(无)
的内容
在尝试了各种方法后,我最初决定:
private void ItemInfo_Load(object sender, EventArgs e)
{
this.inspectorTableAdapter.Fill(this.someDBDataSet.inspector);
this.itemTableAdapter.Fill(this.someDBDataSet.item);
}
private void noInspector_btn_Click(object sender, EventArgs e)
{
inspector_idComboBox.SelectedItem = null;
}
我没有在组合框中添加虚拟项,而是添加了一个(链接)按钮来清除组合框
优点:
组合框将被清除
tableAdapter
设置item.inspector\u id=NULL
inspector
字段的其他表单控件保持不变(因为没有要使用的“空”inspector
行)SelectedItem
为空时,inspector\u id组合框中不显示文本。我更喜欢在框中显示类似(无)
的内容
在尝试了各种方法后,我最初决定:
private void ItemInfo_Load(object sender, EventArgs e)
{
this.inspectorTableAdapter.Fill(this.someDBDataSet.inspector);
this.itemTableAdapter.Fill(this.someDBDataSet.item);
}
private void noInspector_btn_Click(object sender, EventArgs e)
{
inspector_idComboBox.SelectedItem = null;
}
我没有在组合框中添加虚拟项,而是添加了一个(链接)按钮来清除组合框
优点:
组合框将被清除
tableAdapter
设置item.inspector\u id=NULL
inspector
字段的其他表单控件保持不变(因为没有要使用的“空”inspector
行)SelectedItem
为空时,inspector\u id组合框中不显示文本。我更喜欢在框中显示类似(无)
的内容
在尝试了各种方法后,我最初决定:
private void ItemInfo_Load(object sender, EventArgs e)
{
this.inspectorTableAdapter.Fill(this.someDBDataSet.inspector);
this.itemTableAdapter.Fill(this.someDBDataSet.item);
}
private void noInspector_btn_Click(object sender, EventArgs e)
{
inspector_idComboBox.SelectedItem = null;
}
我没有在组合框中添加虚拟项,而是添加了一个(链接)按钮来清除组合框
优点:
组合框将被清除
tableAdapter
设置item.inspector\u id=NULL
inspector
字段的其他表单控件保持不变(因为没有要使用的“空”inspector
行)SelectedItem
为空时,inspector\u id组合框中不显示文本。我更喜欢在框中显示类似(无)
的内容
另一种方法是在选择
(无)
时清除组合框:
优点:
正确的空值将保存到数据集并发送到数据库
不需要外部清除按钮
缺点:
选择(无)
也会清除文本。我希望(无)
保持选中状态
另一种方法是在选择(无)
时清除组合框:
优点:
正确的空值将保存到数据集并发送到数据库
不需要外部清除按钮
缺点:
选择(无)
也会清除文本。我希望(无)
保持选中状态
另一种方法是在选择(无)
时清除组合框:
优点:
正确的空值将保存到数据集并发送到数据库
不需要外部清除按钮
缺点:
选择(无)
也会清除文本。我希望(无)
保持选中状态
另一种方法是在选择(无)
时清除组合框:
优点:
正确的空值将保存到数据集并发送到数据库
不需要外部清除按钮
缺点:
选择(无)
也会清除文本。我希望(无)
保持选中状态
Eureka绑定到视图,而不是表
将inspector\u idComboBox
绑定到inspector表的新SQL Server视图
SELECT NULL as inspector_id, '(none)' as fullName, '' as employeeCode
UNION
SELECT inspector_id, fullName, employeeCode
FROM dbo.inspector
优点:
(无)
项位于组合框中
选择项目时,SelectedItem
和文本将持续显示
SQL视图允许inspector\u id
应用程序代码中不需要任何变通方法。只需从视图中填充数据集
在关系未绑定时允许更大的灵活性
。。。太棒了 真是太棒了绑定到视图,而不是表
将inspector\u idComboBox
绑定到inspector表的新SQL Server视图
SELECT NULL as inspector_id, '(none)' as fullName, '' as employeeCode
UNION
SELECT inspector_id, fullName, employeeCode
FROM dbo.inspector
优点:
(无)
项位于组合框中
SelectedItem
和文本将持续显示