2017-05-16 8 views
0

データがテーブルに見つかったときに実行するJavaScriptコードを停止しようとしています(dt.Rows.Count > 0)。現時点では、コードはデータベースにデータを挿入していません(私が望むもの)が、まだ正常に挿入されたメッセージを受け取っているのでJavaScriptが実行され続けています。ありがとう!C#の検証に失敗したときにJavaScriptコードが停止する

HTML

<input type="button" id="btnAddConsent" value="Add Consent" onclick="insertData();" /> 

はJavaScript

function insertData() { 
    var MBID = document.getElementById("txtConsentMBID").value; 
    var ConsentID = document.getElementById("DropDownListConsent").value; 
    var ConsentDate = document.getElementById("txtPatientConsentDate").value; 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("GET", "insertConsent.aspx?mb=" + MBID + " &ci= " + ConsentID + "&cd=" + ConsentDate, false); 
    xmlhttp.send(null); 

    ConsentID = document.getElementById("DropDownListConsent").value = ""; 
    ConsentDate = document.getElementById("txtPatientConsentDate").value = ""; 
    alert("Consent Added Successfully"); 
} 

C#

using (SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["Molecular"].ConnectionString)) 
{ 
    MBID = Request.QueryString["mb"].ToString(); 
    ConsentID = Request.QueryString["ci"].ToString(); 
    ConsentDate = Request.QueryString["cd"].ToString(); 

    con.Open(); 

    using (SqlCommand sc = new SqlCommand(@" select * from ConsentGroup where ConsentID = @ConsentID and [email protected] ", con)) 
    { 
     sc.Parameters.AddWithValue("@MBID", MBID); 
     sc.Parameters.AddWithValue("@ConsentID", ConsentID); 
     //sc.Parameters.AddWithValue("@ConsentDate", ConsentDate); 
     //sc.ExecuteNonQuery(); 

     DataTable dt = new DataTable(); 
     SqlDataAdapter da = new SqlDataAdapter(sc); 
     da.Fill(dt); 
     if (dt.Rows.Count > 0) 
     { 
      // this message should displayed when count is more that 1 
      Response.Write("alert('This Patient already has this Concent saved in the Database');"); 
     } 
     else 
     { 
      using (SqlCommand sc1 = new SqlCommand(@"insert into ConsentGroup (MBID, ConsentID, ConsentDate, ConsentWithdraw, ConsentConfirm) 

      values('" + MBID + "','" + ConsentID + "','" + ConsentDate + "','NO','YES')", con)) 
      { 
       sc1.ExecuteNonQuery(); 
      } 
     } 
    } 

    con.Close(); 
} 
+3

Ack ...最初のクエリではパラメータ化されていますが、挿入文はSQLインジェクションに対して広く開いています。なぜあなたは変わったのですか?すべてのクエリをパラメータ化する必要があります。そして、あなたはこれを見てみるかもしれません。 http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/ –

答えて

1

XMLHttpRequestありhttp要求として呼び出されるイベントリスナーonreadystatechangeが進行中です。 readyStateが4の場合、要求は完了です。この時点で、関数から返される内容を代行受信し、表示する警告を決定することができます。

xmlhttp.onreadystatechange = function() 
{ 
    if (request.readyState == 4 && request.status == 200) 
    { 
     alert(request.responseText); 
    } 
} 
+0

ご協力ありがとうございます –

関連する問題