如果不是支票,那就存入现金
本文关键字:现金 如果不 | 更新日期: 2023-09-27 18:07:57
我运行了下面Adnan昨晚帮助我的代码(非常感谢Adnan)。
基本上,代码检查输入的金额是否正确。如果是check,则将check值插入chckval。
如果是现金,将现金值插入cashval。
到目前为止,它是一半工作。它将支票插入支票字段名,并将0插入现金字段名。
如果现金是现金,在现金字段中插入现金是行不通的。
它将现金插入到现金字段名中,但它也将相同的金额插入到支票字段名中。这可不妙。
如果是现金,并且插入到现金字段名中,我希望检查值为0。
这里是最新的代码,再次感谢。
For x = 1 To 5 Step 1
dedval = Gridview1.FindControl("ded" & CStr(x))
chckval = Gridview1.FindControl("chck" & CStr(x))
chcknumval = Gridview1.FindControl("chcknum" & CStr(x))
checkboxval = Gridview1.FindControl("chckBox" & CStr(x))
onetimeval = Gridview1.FindControl("onetime" & CStr(x))
multival = Gridview1.FindControl("multi" & CStr(x))
If chckval.Text <> "" And Not checkboxval.Checked Then
cashval = DirectCast(Gridview1.FindControl("chck" & CStr(x)), TextBox).Text
Else
chckval = Gridview1.FindControl("chck" & CStr(x))
End If
If dedval.Text <> "-1" And donatechoice.SelectedItem.Value <> "No" Then
sql += "INSERT INTO employee_ded_amts (employee_id, charity_code, check_amt, chcknum, one_time, bi_weekly, cash, donate_choice, date_stamp) "
sql += "VALUES ('" & Replace(employee_idLabel.Text, "'", "''") & "','" & Replace(dedval.SelectedValue, "'", "''") & "','" & Replace(chckval.Text, "'", "''") & "','" & Replace(chcknumval.Text, "'", "''") & "','" & Replace(onetimeval.Text, "'", "''") & "','" & multival.Text & "','" & Replace(cashval, "'", "''") & "','" & Replace(donatechoice.SelectedItem.Value, "'", "''") & "','" & Replace(datestamp, "'", "''") & "');"
End If
If donatechoice.SelectedItem.Value = "No" Then
x = 6
sql += "INSERT INTO employee_ded_amts (employee_id, charity_code, check_amt, chcknum, one_time, bi_weekly, cash, donate_choice, date_stamp) "
sql += "VALUES ('" & Replace(employee_idLabel.Text, "'", "''") & "','" & Replace(dedval.SelectedValue, "'", "''") & "','" & Replace(chckval.Text, "'", "''") & "','" & Replace(chcknumval.Text, "'", "''") & "','" & Replace(onetimeval.Text, "'", "''") & "','" & Replace(multival.Text, "'", "''") & "','" & Replace(cashval, "'", "''") & "','" & Replace(donatechoice.SelectedItem.Value, "'", "''") & "','" & Replace(datestamp, "'", "''") & "');"
End If
Next
我觉得这个
有问题。IF chckval.Text <> "" And Not checkboxval.Checked Then
语句
===========
<标题> 更新如果cashval是一个字符串类型,试着这样修改这一行,
cashval = DirectCast(fvEmp.FindControl("chck" & CStr(x)),TextBox).Text;
Kenny我发现的东西是FindControl返回控制类型需要被转换成TextBox类型如果它是一个TextBox控件,然后你可以使用它的文本属性来获取字符串。我在上面编辑过。现在试试。
在c#中是这样做的。
string cashval = ((TextBox)(fvEmp.FindControl("whatever control name"))).Text;
==============
New UPDATE
chckval = Gridview1.FindControl("chck" & CStr(x))
Kenny,现在我认为是第三行导致了问题。尝试从For循环中删除第二行。但是当您删除这第二行时,您还需要为chckval TextBox类型变量分配一些值,因为它在查询中使用时不能为空。也许你可以指定一个新的空文本框
或
你也可以让checkval String像你做cashval variable String一样,这将简化它。
但是无论给checkval赋什么值,都要在IF语句中赋值。
If chckval.Text <> "" And Not checkboxval.Checked Then
cashval = DirectCast(Gridview1.FindControl("chck" & CStr(x)), TextBox).Text
< SET SOME VALUE FOR chckval here ... which is default value which will be used in SQL server>
Else
chckval = Gridview1.FindControl("chck" & CStr(x))
标题>