1

SqlDataAdapter を使用してアプリケーションのデータにアクセスして更新する方法の例を探しています。今、私はこのようなものを持っています:

SqlDataAdapter adapter;
DataSet myData = MyDataAccessClass.GetData("Select * from Students", ref adapter);
// change some data here and save changes
adapter.Update();

これらはすべてコード ビハインドで発生しますが、私はそれがまったく好きではありません。だから、私はこのようなことをする方法を見つけようとしています:

DataSet myData = MyDataAccessClass.GetStudents();
// change some data and save changes
MyDataAccessClass.SaveStudents(myData);

WhereSaveStudentsメソッドは引き続き SqlDataAdapter を使用して db を更新します。

これを機能させる方法についてのアイデアや、このようなことを行うためのベスト プラクティスへの指針は高く評価されます。ありがとうございました。

4

2 に答える 2

0

sql-data-adapter を使用して更新データを取得する場合は、これらを使用できます

System.Data.SqlClient の使用;

        SqlConnection con = new SqlConnection("Data Source=abcd-pc;Initial Catalog=user_info;Integrated Security=True");
        SqlDataAdapter da = new SqlDataAdapter();
        try
        {

            da.UpdateCommand = new SqlCommand("Update logindemo set password=@pswd where username=@uname",con);
            da.UpdateCommand.Parameters.Add("@pswd", SqlDbType.VarChar).Value = txtpass.Text;
            da.UpdateCommand.Parameters.Add("@uname", SqlDbType.VarChar).Value = txtusername.Text;
            con.Open();
            da.UpdateCommand.ExecuteNonQuery();
            Label1.Text = "Data Updated";
            con.Close();

        }
        catch
        {
            Label1.Text = "Unable To Connect";
        }

データを簡単に更新する方法を理解していただければ幸いです。例のとおりです。これらのタイプの例は、必要に応じて特定のコマンドと sql クエリを使用して、データへの挿入とデータの削除で使用できます。

于 2012-02-02T18:39:10.097 に答える
0

私には、これはかなり基本的なデータ アクセス レイヤーの実装のように思えます。一般的に、私は次のようにします。

public class MyDataAccessClass
{
    private string ConnString;

    public MyDataAccessClass()
    { //Get connection string from configuration file }

    public MyDataAccessClass(string connString)
    { ConnString = connString; }

    public DataSet GetAllStudents()
    {
       //your SQL Adapter code here...
    }
}

非常に多くの ORM ソリューション (Entity Framework と Linq2Sql のみを含む) が利用可能であるため、データ表現にデータセットの代わりにオブジェクトのコレクションを使用することを検討することをお勧めします。次に、次のようなメソッドを使用できます。

public void CreateUpdateStudent(Student student)
{
    //update database
}

これはかなり主観的なものであることは認めますが、単純な DataSet を使用するよりも好ましいと思います。

于 2011-05-27T16:48:37.100 に答える