2

SqlDataAdapter次のコードでan が使用されている理由を説明できる人はいますか? このアダプターがなくても、コードは正常に機能します。

また、なぜ使用するのDataAdapterですか? DataAdapterこの使用法を理解するのを手伝ってください。

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection con = new SqlConnection("Data Source=.....\\SQLEXPRESS;Initial Catalog=......;Integrated Security=True");
                con.Open();

                SqlDataAdapter da =new SqlDataAdapter(); // Why use `SqlDataAdapter` here?
                SqlCommand sc = new SqlCommand("insert into bhargavc values(" + textBox1.Text + "," + textBox2.Text + ");", con);
                var o = sc.ExecuteNonQuery();
                MessageBox.Show(o + "record to be inserted");
                con.Close();
            }
            catch (Exception)
            {
                MessageBox.Show("error in the code");
            }
        }      

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }
    }
}
4

4 に答える 4

6

データ アダプターは、データベースとデータセットの間のメディエーターのように機能します。ただし、データ アダプターはデータを格納できません。データベースからデータセットにデータを渡すだけです。

例えば:

水道管は、水源 (井戸、池など) から目的地まで水を運ぶために使用されます。ただし、パイプは水を貯めるために使用されていません。同様に、データ アダプター (水道管など) は、データベースからデータセットにデータを送信します。

これにより、データ アダプターについてより明確に理解できるはずです。

于 2013-05-10T05:40:36.163 に答える
5

データ アダプターは、データ リーダーからDataTableまたはDataSetにデータを読み取るために使用されます。

このコードではデータベースからデータを読み取っていないため、データ アダプターはまったく不要です。


補足として、クエリに値を直接入力する代わりに、パラメーターを使用する必要があります。あなたのコードは、SQL インジェクション攻撃に対して完全にオープンです。

于 2013-05-09T17:05:55.470 に答える
4

DataAdapterを使用する理由はいくつかあります。

  1. DataSetなしで DataSet を埋めることはできません。
  2. アダプターが.Fill()メソッドを完了すると、接続が閉じられます。.Close()接続オブジェクトでメソッドを明示的に呼び出す必要はありません。ただし、それはまだ良い習慣です。

あなたの場合、それを持っている必要はありません。ただし、使用したい場合、実装は次のようになります。

SqlDataAdapter da = new SqlDataAdapter();     
DataSet ds = new DataSet();
da.Fill(ds);

そこから、ds相互運用機能を介した Excel へのエクスポートDataGridView、データベース テーブルへの入力、さらには更新など、オブジェクトに対して実行できる追加のアクションがあります。

于 2013-05-09T17:19:48.127 に答える