[实战]浅谈“是”或“否”的ASP.NET 2.0 数据库编程开发
在数据表的字段中我们将“是”或“否”设计成bit数据类型,我们会发现,bit 数据类型的值在 SQL Server 2005 Management Studio 中有个特点:
在设计表中值为0或1(见图1),而在打开表中值为False或True(见图2)。
图1
图2
要在web上显示该值,我们用强大的GridView数据绑定,用BoundField控件显示该列。在存储过程中,SQL脚本如下
Select , OnCatalogPromotion
From 某数据表
From 某数据表
注(Note):... 为略写部分哦~
不用想也不用猜,ASP.NET 在网页中的情况是原样上数据值,是False就还是False,是 True 就还是True。而GridView几乎不可自定义编写BoundField显示的列值。看来想用代码编写是不太方便的了。
只好有请SQL脚本判断语句的帮忙了:
Select , (CASE WHEN OnCatalogPromotion = 0 THEN '否' ELSE '是' END) OnCatalogPromotion
From 某数据表
From 某数据表
注意还要定义正确存储过程中此列的数据:
OnCatalogPromotion varchar(2)
网页中显示的便是“是”或“否”了。
另:GridView控件代码编写的方法见:
http://www.cnblogs.com/wcj1984abc/archive/2008/05/06/1185564.html
上面的部分只是简单的显示,接下来我们实现修改并更新的功能。
第一步:从数据表中得到该值后让 DropDownList 为该所选,再进行下拉的选择。
在DropDownList控件中已有了需要的两个选项:“是”和“否”。
下面是C#程序部分来实现我们分析的思路:
Code
if (OnCatalogPromotionValue == "True")
{
ddlOnCatalogPromotion.SelectedItem.Text = "是";
}
else
{
ddlOnCatalogPromotion.SelectedIndex = 1;
ddlOnCatalogPromotion.SelectedItem.Text = "否";
}
if (OnCatalogPromotionValue == "True")
{
ddlOnCatalogPromotion.SelectedItem.Text = "是";
}
else
{
ddlOnCatalogPromotion.SelectedIndex = 1;
ddlOnCatalogPromotion.SelectedItem.Text = "否";
}
注意:SelectedItem有两个相关的属性:Text 与 Value 两者的不同。
然后是根据用户所选提交修改实现更新:
Code
string OnCatalogPromotionValue = ddlOnCatalogPromotion.SelectedValue.ToString();
if (OnCatalogPromotionValue == "是")
{
OnCatalogPromotionValue = "True";
}
else
{
OnCatalogPromotionValue = "False";
}
string OnCatalogPromotionValue = ddlOnCatalogPromotion.SelectedValue.ToString();
if (OnCatalogPromotionValue == "是")
{
OnCatalogPromotionValue = "True";
}
else
{
OnCatalogPromotionValue = "False";
}
最后,我们测试网页中显示的效果:
上图为“是”的网页显示效果。