2016-07-25 2 views
0

存在し、次の処理を行い、クエリを削除しない場合は挿入します。チェックボックスは、その後チェックしているかどうかを確認されていないときにレコードが存在する場合は削除し、レコードはループのために、私は挿入を書いている私で

をレコードがある場合は&存在する場合は削除します。それが存在しなければ何もしないでください。

チェックボックスがチェックされている場合は、レコードが存在するかどうかもチェックします。存在する場合は&が存在する場合は何もしませんが、存在しない場合は挿入します。

私のクエリ、特に私のサブクエリが正しく実行されるかどうか、あるいは私が今データベースを変更したくないのにそれを書いているので、エラーを返すかどうかのチェックが必要です。このコード" & chk.Checked & "= 1)"

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 
+0

実行してみましたか?何が起こるのですか?間違いはありますか?適切なデータが変更されますか? –

+0

サブクエリの1つからエラーが発生しましたが、適切な文を書くまで、その時点でデータベースを変更したくないため、1回だけ実行されました。 –

+0

ユーザが両方のボックスにチェックを入れるとどうなりますか? – Plutonix

答えて

1
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)" 

誤差を与えます。 True = 1これはsqlでサポートされていません。

+0

ありがとうKarthick。 chkはフロントエンドにあり、列や値の内部にはないので、必要ありません。 –

0

CASEがSELECTステートメントで動作するため、コードが何もしないようにするには、CASEステートメントは必要ありません。クエリはIf-Else文の下にあるため、valsql2 = valsql2の代わりにvalsql2 = whatever、& ";"これは条件文であり条件が何であっても問合せが行われるためです。クエリはかなり良いです、ちょうどchk.Checked = 0とchk.Checked = 1を取り除きます。

関連する問題