2016-12-15 11 views
0

データベースにデータをほとんど挿入しないフォームを作成しました。私は私のmvcプロジェクトにデータを挿入するjqueryを使用していますが、私はどのように挿入機能を作成することができます混乱している。JqueryとMVCを使用してデータベースに値を挿入

まず、IDを使用してレコードを挿入または更新する方法を1つ作成しました。しかし、私はどのように挿入または更新するかどうかをチェックするためにプライマリとしてIDを使用することはできません。 IDが0の場合はInsertを意味し、0より大きい場合は更新しますが、それをどのように関数に追加できますか?第二に、私のインサート機能は正しい方法ではないようですが、実装が容易な方法は何ですか?

(ビュー)は

<script type="text/javascript"> 
    $(document).ready(function() { 
     //function will be called on button click having id btnsave 
     $("#btnRoleListSubmit").click(function() { 
      $.ajax({ 
       type: "POST", //HTTP POST Method 
       url: '/Admin.mvc/Admin/InsertRoleList', // Controller/View 
       data: { //Passing data 
        Name: $("#Name").val(), //Reading text box values using Jquery 
        Role: $("#Role").val(), 
       } 
      }); 
     }); 
    }); 
</script> 

    <table align="center"> 
     <tr> 
      <td valign="top" width="100" class="col-label"> 
       <span>Name</span> 
      </td> 
      <td class="col-label"> 
       <input type="text" maxlength="200" style="margin-left: 0;" name="Name" id="Name" 
        class="required" value="" /> 
      </td> 
     </tr> 
     <tr> 
      <td valign="top" class="col-label"> 
       Employee Role 
      </td> 
      <td class="col-label"> 
       <textarea id="Role" name="Role" class="required" cols="15" rows="2"></textarea> 
      </td> 
     </tr> 
    </table> 
    <hr /> 
    <div style="margin: 12px;" align="center"> 
     <button type="submit" name="btnRoleListSubmit" class="actionButton"> 
      <span>Add Employee Role</span></button> 
    </div> 

を.asmxファイル(コントローラー)は.cs

public ActionResult InsertRoleList(int branchId, RoleListViewModel obj) 
    { 
     AddDetails(branchId, obj); 

     return View(); 
    } 

    private void AddDetails(int branchId, EmailListViewModel obj) 
    { 

    Branch branches = this._branches.GetID(branchId); 
    var GetDB = branches.GetClientDatabase(); 
    RoleListViewModel listData = new RoleListViewModel(); 
    { 
     listData.Name= obj.Name; 
     listData.Role= obj.Role; 
    }; 

    List<int> lstIds = GetDB.InsertorUpadateRole(obj); 
    } 

SqlQueries.cs

public List<int> InsertorUpadateRole (RoleList obj) 
    { 
     RoleList lstData = new RoleList(); 
     string sqlQuery = string.Empty; 
     sqlQuery = @"INSERT INTO [dbo].[EmployeeRoleList] 
        ([name], 
        [is_active], 
        [role], 
        [is_admin] 
        } 
        VALUES ('{0}','1','{2}','0') 
        SELECT SCOPE_IDENTITY() AS id;"; 
     try 
     { 

      this.ExecuteReader((record) => 
      { 
       Name = Convert.ToInt32(record["name"]); 
       Role = Convert.ToInt32(record["role"]); 
      }, 
      string.Format(sqlQuery, lstdata.Name, lstdata.Role)); 


     } 
     catch (Exception e) 
     { 
      var message = e; 
     } 
    } 

は、誰もがこれを支援することはできますか?

+0

パターンに関する質問のためのものです。 ASP.NET-MVCの実装には特定のタグがあります。 –

+0

_Indをプライマリとして使用して、InsertまたはUpdate_をC#コードで使用して、UPDATEまたはINSERTのいずれかを実行するかどうかを確認できます。 –

答えて

0

あなたのURLは通常コントローラで始まり、 "/ Admin/InsertRoleList"を試してみてください。あなたのAjaxポストパラメータはコントローラのコードとよく似ていないコントローラのInsertRoleList(string Name、string Role)と一致する必要があります...

+0

これにはどのような解決策が必要ですか? –

関連する問題