簡體   English   中英

C#DataGridView和oledb

[英]c# DataGridView & oledb

我在MS Access中有一個數據庫。
而且我將表單中的數據放置在數據庫中的datagridview中。

        string connectionString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + Application.StartupPath + "/Db.mdb";
        OleDbConnection conObj = new OleDbConnection(connectionString);
        conObj.Open();
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        ds.Tables.Add(dt);
        OleDbDataAdapter da = new OleDbDataAdapter();
        da = new OleDbDataAdapter("SELECT * FROM StopMaster", conObj);
        da.Fill(dt);
        dataGridView1.DataSource = dt.DefaultView;
        conObj.Close();

執行后,它將顯示datagridview及其數據庫中的項目,
以及一個空行,我們可以在其中添加新數據,如果單擊包含數據的現有行的項目,我們可以對其進行更新甚至刪除

如何為該更新編寫代碼,刪除並添加並反映到數據庫中,是否有任何事件或事件
還如何使數據網格視圖列不可調整大小。

還說如果我單擊列標題時在datagridview中是否有兩列“名稱”和“ pin碼”,現在說“ pin碼”,則必須按順序對datagridview行進行排序
是否有任何事件以及如何做到這一點

首先要提到的是,您將需要將數據表綁定到Datagridview。 這樣一來,您在編輯DataGridView控件時所做的任何更改都會直接反映到基礎DataTable中。

我假設您已經填充了DataTable對象。

首先創建BindingSource對象:

BindingSource bs = new BindingSource();

bs.Datasource = dt;

現在,我們需要將此綁定對象作為DataGridView控件的數據源:

dataGridView1.DataSource = bs;

在一種方法中,您可以使用以下代碼來提交更改:

using (OleDbConnection con = new OleDbConnection(connectionString))
                {
                    var adaptor = new OleDbDataAdapter();
                    adaptor.SelectCommand = new OleDbCommand(""SELECT * FROM [StopMaster]", con);

                var cbr = new OleDbCommandBuilder(adaptor);

                cbr.GetDeleteCommand();
                cbr.GetInsertCommand();
                cbr.GetUpdateCommand();

                try
                {
                    con.Open();
                    adaptor.Update(dt);
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Message, "OledbException Error");
                }
                catch (Exception x)
                {
                    MessageBox.Show(x.Message, "Exception Error");
                }
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM