1)データを取得したら、レコードを追加、編集、または削除する必要があるたびに、接続を開き、SQL を起動して接続を閉じる必要があります。右 ?Sql を使用せずにこれを行う方法はありますか? さらに、このコンセプトは大丈夫です。
いいえ。データベースを更新するには、データベースを使用する必要があります。データベースにストアド プロシージャを作成して機能を処理し、それをコードから呼び出して、保存する必要があるデータを渡します。インライン SQL を使用しないでください。パラメータ化されたストアド プロシージャが最適です。
2) 構造体を使用していないため、一時情報を格納するために空のデータセットを作成する必要があります。これは便利ですか?
それはあなたが何をしているかによります。更新したデータを保持するオブジェクト モデルを作成し、変更を保存するときにプロパティをストアド プロシージャに渡します。
3) データセット テーブルで特定のものを検索する必要がある場合、すべてのアイテムをループする必要がありますか、またはデータセットで sql を使用できますか、それとも代替手段がありますか?
行をループするか、linq を使用して必要なものを引き出すことができます。Linq は、基本的にコレクションに対する .NET コード クエリであるため、非常に優れています。
コードからストアド プロシージャ コールを介して更新する方法を示すチュートリアル/ガイドがたくさんあります。linq チュートリアルもたくさんあります。基本的に、テーブルに対する linq クエリは次のようになります。
dim result as Generic.List(of String) =
(from r in table.AsEnumerable()
select r
where r["columnName"] = "the value").ToList()
この構文はおそらく少しずれていますが、そのように見えます。
編集
あなたのモデル:
Public Class EmployeeModel
Public Property Id
Public Property FirstName
Public Property Last Name
Public Property JobCode
Public Sub EmployeeModel(your params)
//set properties
End Sub
End Class
あなたの DAL:
Public Shared Class EmployeeDAL
Public Shared Sub SaveEmployee(ByRef model as EmployeeModel)
// call your sp_SaveEmployee stored procedure and set the parameters to the model properties
// @id = EmpoyeeModel.Id
// @JobCode = Employee.JobCode
// ...
End Sub
End Class
私は数か月ごとに VB を使用しているため、小さな構文エラーがいくつかある可能性があります。しかし、それは基本的にあなたがする必要があるすべてです。データを保存する関数は、クラス自体ではなく、DAL にあります。ただし、DAL を使用したくない場合は、クラスに保存機能を配置できます。同じように機能しますが、明確に分離されていません。