在我的for循环中,我写的插入和删除查询其执行以下插入:删除,如果存在记录,如果记录不存在
在这种情况下,如果该复选框不检查再检查,如果该记录存在&如果存在则删除。如果它不存在,那么不要做任何事情。
如果复选框被选中,那么还要检查记录是否存在&如果存在,则不做任何事情,但如果它不存在,则插入它。
我需要检查我的查询,尤其是我的子查询是否会正确执行,否则会返回一个错误,因为我现在正在编写它而不想更改我的数据库。
For Each oDataGridItem In valgrid2.Items
chk = oDataGridItem.FindControl("CheckBox1")
rn = oDataGridItem.FindControl("lblrptName")
rid = oDataGridItem.FindControl("lblReportID")
If chk.Checked = True Then
rpti = CType(oDataGridItem.FindControl("lblReportID"), Label).Text
'valsql2 = "INSERT INTO CompanyReportListTable(CompanyID, ReportID) Values (valCompanyId, rpti) WHERE NOT EXISTS(SELECT * FROM CompanyReportListTable WHERE ReportID <> rpti and companyid <> valCompanyId and " & chk.Checked & "= 1)"
'if it exists then don’t do anything
'valsql2 = valsq2 & ";IF ReportID = rpti and companyid = valCompanyId BEGIN WHERE CompanyID = CompanyID AND ReportID = ReportID END"
'To do nothing, i'd equal the parameter's value to the column name
count += 1
rptn = CType(oDataGridItem.FindControl("lblrptName"), Label).Text
oExArgs.Add(rptn)
Response.Write(rpti + " - " + rptn + "<br/>")
Else
'valsql2 = valsq2 & ";DELETE FROM CompanyReportListTable WHERE EXISTS(Select * FROM CompanyReportListTable WHERE ReportID = rpti and companyid = valCompanyId and" & chk.Checked & " = 0)"
'if it doesn't exist then don’t do anything
'valsql2 = valsq2 & ";IF ReportID <> rpti and companyid <> valCompanyId BEGIN WHERE CompanyID = CompanyID AND ReportID = ReportID END"
End If
你试过运行它们吗?怎么了?你有错误吗?它会改变正确的数据吗? –
我从其中一个子查询中得到一个错误,但是我只运行了一次,因为在那个时候我不想改变我的数据库,直到我写了正确的语句。 –
如果用户同时检查两个盒子会怎么样? – Plutonix