2016-04-28 13 views
0

の機能で複数のレコードを渡します私は、両方のテーブルに影響を与える必要があります販売フォームのエントリを置く。だから私は、両方のテーブルの値を型として渡し、その中でプロセスを実行する関数を作成することにしました。しかし、私はできませんでした。 この場合顧客にはレコードが1つあり、Salesには1つ以上のレコードがあります。今私は関数を宣言する方法とC#.netでそれを実行する方法を知る必要があります。は、どのようにSQL Serverの

顧客

cus_id         
cus_name        
cus_totpurchasecost 

販売

cus_id    
sales_id   
item_id     
item_qty    
item_cost 

顧客(1、 'DDDDD'、10000)アドバンス

sales(1,1,2,2000)   
sales(1,2,6,1000) 

感謝

+0

何を試しましたか?実行しようとした機能を表示できますか?エラーが発生しましたか? – tobypls

+0

DB関数を定義する必要はありません。データベースにレコードを作成して挿入する方法は、C#コードからすべて行うことができます。関数を作成して型を渡すことは悪い考えです。 – progrAmmar

+1

[ネットコードからストアドプロシージャにテーブル値パラメータを渡す方法](http://stackoverflow.com/questions/5595353/how-to-pass-table-value-parameters-to-stored-procedure-ネットコードから) – rinukkusu

答えて

0

ここにはいくつかのオプションがあります。

ストアドプロシージャを作成して、レコードを適用可能なテーブル(関数ではない)に追加し、ADO.NETを使用して実行することができます。これは「古い学校」アプローチであり、オンラインで多くの例があります。

一般に、CRUD操作(作成、読み取り、更新、削除)ごとにストアドプロシージャを作成し、必要なパラメータを解析するStore Procsを呼び出すC#コードのメソッドを作成します。

これは、SQL注入攻撃のリスクを回避するため(完全ではないが)、C#コードでSQLコードを構築するより安全です。

参照:

  1. How to create a Stored Procedure
  2. ADO.NET Basics

他の方法は、この作業が少し簡単にするためにORM(オブジェクト関係マッパー)またはMicroORMフレームワークを使用することです。これは物事を行う "新しい"方法と考えられています。

参照:

  1. Entity Framework (ORM)
  2. PetaPoco (MicroORM)
-1

あなたが行操作による行の機能面でカーソルを使用することができます。

関連する問題