none
資料庫覆寫記錄的問題 RRS feed

  • 問題

  • 1.在配合資料庫使用時,可使用 Command.Fill(DataSet, "表單名稱") 方法將資料庫記錄成批讀入DataSet的表單內。  

    2.反之,是否有如 Command.Fill(DataSet, "表單名稱") 之類的方法,可將DataSet表單的記錄成批覆寫回資料庫

     

    敬請指導,謝謝。

    2008年1月5日 上午 10:16

解答

  • 看你是用 SqlDataAdapter、OleDbDataAdapter 還是 OdbcDataAdapter ,配合使用 FillUpdate 方法...



    2008年1月5日 上午 10:42
  • :::你可以使用SqlCommandBuilder來做

     

        Dim cn As New SqlConnection("連線字串")
        Dim cmd As New SqlCommand("Select 語法", cn)
        Dim da As New SqlDataAdapter
        Dim ds As New DataSet
        Dim cb As New SqlCommandBuilder

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            cb.DataAdapter = da
            da.SelectCommand = cmd
            da.Fill(ds, "ABC")
        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            '更新回資料庫
            da.Update(ds, "ABC")
        End Sub

    2008年1月6日 上午 03:10

所有回覆

  • 看你是用 SqlDataAdapter、OleDbDataAdapter 還是 OdbcDataAdapter ,配合使用 FillUpdate 方法...



    2008年1月5日 上午 10:42
  • 1. 配合使用OleDbDataAdapter 。

    2. 是否可提供簡例。

     

    謝謝指導。

    2008年1月5日 下午 12:35
  • 1.一般 BindingSource 元件若要配合資料庫使用,通常會在其屬性視窗的 DataSource 內設定要繫結的資料庫資料表

    2.請問,如何改用程式碼設定 BindingSource.DataSource 要繫結的資料庫資料表

    3.通常會設定 BindingSource.DataSource = DataSet ,但 DataSet 又該如何繫結 資料庫資料表

    4.我須要 BindingSource與資料庫資料表保持繫結,如此資料才能覆寫回資料庫。

     

    敬請指導,謝謝。

    2008年1月5日 下午 04:34
  • private DataSet ds = new DataSet();
    private BindingSource bs = new BindingSource();
     
    private void Form1_Load(object sender, EventArgs e)
    {
        string strConn = @"NORTHWND ConnectionStrings";
        SqlConnection conn = new SqlConnection(strConn);
        SqlDataAdapter da = new SqlDataAdapter("Select * from orders", conn);
     
        da.Fill(ds, "orders");
        bs.DataSource = ds.Tables[0];
        dataGridView1.DataSource = bs;
    }

    2008年1月5日 下午 05:13
  • 1.感謝指導,這對我非常有用。

    2.再次請問,若要反過來將資料覆寫回資料庫,程式碼該怎麼寫。

    3.由於資料已存在DataSet內且筆數已跟原資料庫不同,應成批覆寫或是以迴圈方式逐筆覆寫資料回資料庫。

     

    敬請再次指導,謝謝。

    2008年1月6日 上午 01:05
  • :::你可以使用SqlCommandBuilder來做

     

        Dim cn As New SqlConnection("連線字串")
        Dim cmd As New SqlCommand("Select 語法", cn)
        Dim da As New SqlDataAdapter
        Dim ds As New DataSet
        Dim cb As New SqlCommandBuilder

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            cb.DataAdapter = da
            da.SelectCommand = cmd
            da.Fill(ds, "ABC")
        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            '更新回資料庫
            da.Update(ds, "ABC")
        End Sub

    2008年1月6日 上午 03:10
  • 萬分感謝。

     

    2008年1月8日 下午 01:17