【发布时间】:2011-02-11 01:50:08
【问题描述】:
基本上,我有一个下拉列表,其中填充了文本和值,具体取决于单选按钮列表的选定索引。代码如下:
protected void RBLGender_SelectedIndexChanged(object sender, EventArgs e)
{
DDLTrous.Items.Clear();
DDLShoes.Items.Clear();
if (RBLGender.SelectedValue.Equals("Male"))
{
String[] MaleTrouserText = {"[N/A]", "28\"", "30\"", "32\"", "34\"", "36\"", "38\"", "40\"", "42\"", "44\"", "48\""};
String[] MaleTrouserValue = { null, "28\"", "30\"", "32\"", "34\"", "36\"", "38\"", "40\"", "42\"", "44\"", "48\"" };
String[] MaleShoeText = { "[N/A]", "38M", "39M", "40M", "41M", "42M", "43M", "44M", "45M", "46M", "47M" };
String[] MaleShoeValue = { null, "38M", "39M", "40M", "41M", "42M", "43M", "44M", "45M", "46M", "47M" };
for (int i = 0; i < MaleTrouserText.Length; i++)
{
ListItem MaleList = new ListItem(MaleTrouserText[i], MaleTrouserValue[i]);
DDLTrous.Items.Add(MaleList);
}
for (int i = 0; i < MaleShoeText.Length; i++)
{
ListItem MaleShoeList = new ListItem(MaleShoeText[i], MaleShoeValue[i]);
DDLShoes.Items.Add(MaleShoeList);
}
}
else if (RBLGender.SelectedValue.Equals("Female"))`
选择文本'[n / a]'时,我希望将空值插入数据库中。 At present when '[N/A]' is selected the value entered into the database is [N/A] does anyone know why?
这是我的数据库插入代码:
protected void UpdateWorkWear()
{
try
{
string connectionString = Common.GetConnectionString("w34to4tmConnectionString");
SqlConnection conn = new SqlConnection(connectionString);
StringBuilder sbSQL = new StringBuilder();
string str = DDLSurname.SelectedValue;
if (str.Contains("'"))
{
str = str.Replace("'", " ");
}
sbSQL.Append("IF EXISTS (select * from TO4_WORKWEAR_DISTRIBUTION where EmpID = @EmpID)");
sbSQL.Append(" UPDATE TO4_WORKWEAR_DISTRIBUTION SET ");
sbSQL.Append("costCentre = coalesce(@Cost_Centre, CostCentre), EmployeeType = coalesce(@EmployeeType, EmployeeType), Initials = coalesce(@Initials, Initials), Surname = coalesce(@Surname, Surname), ");
sbSQL.Append("IssueQuarter = coalesce(@IssueQuarter, IssueQuarter), TrouserSize = coalesce(@Trouser_S, TrouserSize), TrouserLength = coalesce(@Trouser_L, TrouserLength), ");
sbSQL.Append("PoloSize = coalesce(@Polo_S, PoloSize), SweatSize = coalesce(@Sweat_S,SweatSize), ShortSize = coalesce(@Short_S, ShortSize), ShoeSize = coalesce(@Shoe_S, ShoeSize) WHERE EmpID = @EmpID ");
sbSQL.Append(" else INSERT INTO TO4_WORKWEAR_DISTRIBUTION (EmpID,CostCentre, EmployeeType, Initials, Surname, IssueQuarter, TrouserSize, TrouserLength, PoloSize, SweatSize, ShortSize, ShoeSize) ");
sbSQL.Append("VALUES (@EmpID, @Cost_Centre, @EmployeeType, @Initials, @Surname, @IssueQuarter, @Trouser_S, @Trouser_L, @Polo_S, @Sweat_S, @Short_S, @Shoe_S)");
sbSQL.Replace("@EmpID", "'" + DDLEmpID.SelectedValue + "'");
sbSQL.Replace("@Cost_Centre", "'" + DDLCostCentre.SelectedValue + "'");
sbSQL.Replace("@EmployeeType", "'" + RBLAssociate.SelectedValue + "'");
sbSQL.Replace("@Initials", "'" + DDLInitials.SelectedValue + "'");
sbSQL.Replace("@Surname", "'" + str + "'");
sbSQL.Replace("@Trouser_S", "'" + DDLTrous.SelectedValue + "'");
sbSQL.Replace("@Trouser_L", "'" + DDLTrouserLnh.SelectedValue + "'");
sbSQL.Replace("@Trouser_Q", "'" + DDLTrouserQty.SelectedValue + "'");
sbSQL.Replace("@Polo_S", "'" + DDLPolo.SelectedValue + "'");
sbSQL.Replace("@Polo_Q", "'" + DDLPoloQty.SelectedValue + "'");
sbSQL.Replace("@Sweat_S", "'" + DDLSweat.SelectedValue + "'");
sbSQL.Replace("@Sweat_Q", "'" + DDLSweatQty.SelectedValue + "'");
sbSQL.Replace("@Shoe_S", "'" + DDLShoes.SelectedValue + "'");
sbSQL.Replace("@Short_S", "'" + DDLShor.SelectedValue + "'");
sbSQL.Replace("@InputDate", "'" + System.DateTime.Now.Date.ToString("MM/dd/yyyy") + "'");
sbSQL.Replace("@IssueQuarter", "'" + RBLQuarter.SelectedValue + "'");
SqlCommand cmd = new SqlCommand(sbSQL.ToString(), conn);
cmd.CommandType = CommandType.Text;
conn.Open();
int result = cmd.ExecuteNonQuery(); //execute the SQL command on the database
LiteralControl lit = new LiteralControl();
lit.Text = String.Format("Data Uploaded Successfully.");
感谢大家的帮助。 我决定现在将空白字符串 "" 插入数据库而不是 null,因为当我从中运行报告时,它让我的生活稍微轻松一些。
【问题讨论】:
-
你是传递 null 到数据库还是传递 N/A?
-
传递空值(很好地尝试)数据库应该获取下拉列表值而不是下拉列表文本。但是我在代码中将值定义为 null 的地方是取而代之的是文本。
标签: c# database drop-down-menu null