# doQuOther
::: danger
就是不使用模組化的crud,改成自己新增Buttonc或是使用onchange或是onblur事件來執行程式
:::
## cshtml
```htmlmixed=
<button type="button" class="btn btn-main" ng-click="GET_Date()" />
```
* ng-click() 點擊事件
* ng-change() 欄位變更事件
* ng-blur() 欄位變更完的事件
## 沒有傳回值的QuOther
### JS
```javascript=
$scope.GET_Date = function () {
if ($scope.editRow.NAME != NULL) {
//宣告一個QuOther的物件叫l_delta
var l_delta = newDeltaQuOther();
l_delta.name = "GETDate";
//將值傳入l_delta裡面
l_delta.oldRow.NAME = $scope.editRow.NAME;
////執行QuOther,並將l_delta傳入,回傳的值會放入a_result
$scope.doQuOther(l_delta).then(function (a_result) { });
}
}
```
### Controller
``` csharp=
[System.Web.Http.HttpPost]
public IHttpActionResult QuOther(DeltaQuOther a_delta)
{
//將a_delta的oldRow放入l_searchData裡
Dictionary<string, object> l_searchData = a_delta.oldRow;
if (a_delta.name == "GETDate")
{
//宣告一個hashtable存放要加入sql的參數
Hashtable ht = new Hashtable();
//建立一個dbcontroller(資料庫連線器)
DBController dbc = new DBController();
//將ht清空
ht.Clear();
//放入sql語法所需參數
ht.Add("@NAME", new StructureSQLParameter
(l_searchData["NAME"], SqlDbType.NVarChar));
//放入需要執行的sql
string GET_IDDate_Select =
"INSERT INTO DEMOMI VALUES (@NAME,1,'2020-07-01 00:00:00.000'
,'2020-07-15 00:00:00.000')";
//DbExecuteScalar_Str會將執行結果變為一個字串回傳回來
//資料庫連線器.執行的型態(看需求來選擇)(sql,ht)
string GET_IDDateSelect = dbc.DbExecuteScalar_Str
(GET_IDDate_Select, ht);
}
return this.doQuOther();
}
```
* Controller 加入 Quther Function
* 在改寫sql
## 有傳回值的QuOther
### JS
```javascript=
$scope.GET_Date = function () {
if ($scope.editRow.NAME != NULL) {
//宣告一個QuOther的物件叫l_delta
var l_delta = newDeltaQuOther();
l_delta.name = "GETDate";
//將值傳入l_delta裡面
l_delta.oldRow.NAME = $scope.editRow.NAME;
////執行QuOther,並將l_delta傳入,回傳的值會放入a_result
$scope.doQuOther(l_delta).then(function (a_result)
{
if (a_result.NAME == "")
{
swal("資料庫內無資料", "", "warning").catch(swal.noop);
}
else
{
swal("查詢資料:"+a_result.NAME, "", "success").catch(swal.noop);
}
});
}
}
```
* 回傳的值會放入a_result
### Controller
``` csharp=
[System.Web.Http.HttpPost]
public IHttpActionResult QuOther(DeltaQuOther a_delta)
{
//將a_delta的oldRow放入l_searchData裡
Dictionary<string, object> l_searchData = a_delta.oldRow;
if (a_delta.name == "GETDate")
{
//宣告一個hashtable存放要加入sql的參數
Hashtable ht = new Hashtable();
//建立一個dbcontroller(資料庫連線器)
DBController dbc = new DBController();
//將ht清空
ht.Clear();
//放入sql語法所需參數
ht.Add("@NAME", new StructureSQLParameter
(l_searchData["NAME"], SqlDbType.NVarChar));
//放入需要執行的sql
string GET_IDDate_Select =
"Select abank_name from fnxabank where abank_name like '%'+@NAME+'%'";
string GET_IDDateSelect = dbc.DbExecuteScalar_Str(GET_IDDate_Select, ht);
l_searchData["NAME"] = GET_IDDateSelect;
return new OkNegotiatedContentResult<Dictionary<string, object>>
(l_searchData, this);
}
return this.doQuOther();
}
```
* OkNegotiatedContentResult<Dictionary<string, object>>(l_searchData, this);用他來回傳資料去前端
###### tags: `實習筆記`