none
C#資料庫新增問題 RRS feed

  • 問題

  •  

    我用combobox選擇資料庫中我想要選取的表單後

    再利用insert的方式去新增它

    insertCmd = "Insert Into " + cboBox1.SelectedItem + "(RFID) Values('" + textBox1.Text + "')";

    然後當我按下查詢鈕時

     dataGridView1.DataSource = myDataSet.Tables[cboBox1.Text];

    發現他並沒有讀取到我新增的內容

    需要關掉在開啟時才會有新增的內容

     

    可以請各位提點我這新手一下嗎

    非常感謝

     

    2008年8月23日 上午 09:41

解答

  •  forgot754210 寫信:

     

    我用combobox選擇資料庫中我想要選取的表單後

    再利用insert的方式去新增它

    insertCmd = "Insert Into " + cboBox1.SelectedItem + "(RFID) Values('" + textBox1.Text + "')";

    然後當我按下查詢鈕時

     dataGridView1.DataSource = myDataSet.Tables[cboBox1.Text];

    發現他並沒有讀取到我新增的內容

    需要關掉在開啟時才會有新增的內容

     

    可以請各位提點我這新手一下嗎

    非常感謝

     

    Hello

    根據你上面的描述我假設你的查詢按鈕裡面的指令為

    Code Snippet

    //然後當我按下查詢鈕時  <-你的描述

    dataGridView1.DataSource = myDataSet.Tables[cboBox1.Text];

     

     

    基本上dataGridView1.DataSource = myDataSet.Tables[cboBox1.Text]; 你只需要設定一次就可以了(告訴dataGridView1你的資料來源是myDataSet.Tables[cboBox1.Text]。 所以你的查詢按鈕動作應該是把資料再次填入myDataSet.Tables[cboBox1.Text],dataGridView1就會自己更新了。

     

    還是不懂? 看下面這邊,你自己開一個新WinForm專案,畫面上放一個dataGridView1及兩個按鈕,你會發現當你按下bntGetData_Click的時候dataGridView1才會有新資料進去

    Code Snippet

            DataSet myDataSet = new DataSet();

       //將資料填入myDataSet的按鈕

            private void bntGetData_Click(object sender, EventArgs e)
            {
                using (SqlConnection conn = new SqlConnection("Data Source=your data source;Initial Catalog=yourDB;Integrated Security=True"))
                {
                    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM xxx", conn);
                    conn.Open();
                    da.Fill(myDataSet);
                }
            }

     

       //設定dataGridView1來源DataSource的按鈕

            private void btnSetDataSource_Click(object sender, EventArgs e)
            {
                dataGridView1.DataSource = myDataSet.Tables[0];
            }

     

     

    2008年8月24日 上午 07:13

所有回覆

  • Hi,

    你用InsertInto的SQL指令直接對資料庫做新增動作的話是不會反應到DataSet上面的,你可以Insert到資料庫後手動再將資料新增到Dataset裡面,或是先新增到DataSet裡面之後藉由資料配接器來將資料更新到資料庫中。

    2008年8月23日 上午 10:09
  •  

    你好

    Insert到資料庫後手動再將資料新增到Dataset裡面,或是先新增到DataSet裡面之後藉由資料配接器來將資料更新到資料庫中。

    請問可以再詳細一點嗎

     

    非常感謝您

     

     

    2008年8月23日 上午 10:22
  •  forgot754210 寫信:

     

    我用combobox選擇資料庫中我想要選取的表單後

    再利用insert的方式去新增它

    insertCmd = "Insert Into " + cboBox1.SelectedItem + "(RFID) Values('" + textBox1.Text + "')";

    然後當我按下查詢鈕時

     dataGridView1.DataSource = myDataSet.Tables[cboBox1.Text];

    發現他並沒有讀取到我新增的內容

    需要關掉在開啟時才會有新增的內容

     

    可以請各位提點我這新手一下嗎

    非常感謝

     

    Hello

    根據你上面的描述我假設你的查詢按鈕裡面的指令為

    Code Snippet

    //然後當我按下查詢鈕時  <-你的描述

    dataGridView1.DataSource = myDataSet.Tables[cboBox1.Text];

     

     

    基本上dataGridView1.DataSource = myDataSet.Tables[cboBox1.Text]; 你只需要設定一次就可以了(告訴dataGridView1你的資料來源是myDataSet.Tables[cboBox1.Text]。 所以你的查詢按鈕動作應該是把資料再次填入myDataSet.Tables[cboBox1.Text],dataGridView1就會自己更新了。

     

    還是不懂? 看下面這邊,你自己開一個新WinForm專案,畫面上放一個dataGridView1及兩個按鈕,你會發現當你按下bntGetData_Click的時候dataGridView1才會有新資料進去

    Code Snippet

            DataSet myDataSet = new DataSet();

       //將資料填入myDataSet的按鈕

            private void bntGetData_Click(object sender, EventArgs e)
            {
                using (SqlConnection conn = new SqlConnection("Data Source=your data source;Initial Catalog=yourDB;Integrated Security=True"))
                {
                    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM xxx", conn);
                    conn.Open();
                    da.Fill(myDataSet);
                }
            }

     

       //設定dataGridView1來源DataSource的按鈕

            private void btnSetDataSource_Click(object sender, EventArgs e)
            {
                dataGridView1.DataSource = myDataSet.Tables[0];
            }

     

     

    2008年8月24日 上午 07:13
  • 可能是这个样子哦:

    1,新增数据

    2,查询数据

    .....................

    按下查询按钮 没有出现新增的数据.

    .....................

    问题出在哪里呢?

    ---------------------------------------------------------------------------------------------------------------

    有没有缺少一个关键环节呢---重新绑定数据

    ---------------------------------------------------------------------------------------------------------------

    现在我们重新理顺下这个顺序:

    1,新增数据

    2,重新绑定数据 (将新增的数据重新获取下  {和重新打开页面的本质是一样的})

    3,查询数据(这个时候数据就会查到了)

    也就是说新增数据后就刷新当前数据,使之保持最新.

    ---------------------------------------------------------------------------------------------------------------

    根据以上得出

    我们在操作数据时,增删改之后最好就同时使当前页面的数据得到最新的,以体现出我们所做的编辑效果

    然后再对这个最新数据进行各种操作就不会出现错误了.

    ---------------------------------------------------------------------------------------------------------------

     

     

    2008年8月27日 上午 08:02