我的最後一個問題是關閉,因爲它是不明確的,所以我會再試一次,因爲我真的需要幫助這個...的DataGridView編輯細胞
我使用Visual Studio 2010與OLEDB連接。現在我正在開發一個窗體。我注意到一個datagridview允許你有一個編輯/添加/刪除模式,所以我想能夠使用它。
我想要做的是用cellcontentchanged事件來編輯我的數據庫。當我更改內容並離開時,它會問我是否要編輯此單元格。如果我說是的,那麼這個單元格將會改變。我確定了ReadOnly = false
和enabled = true
。之前,我讀過的東西,我只是這樣做:
adapter.Update(dataset);
或類似的東西。但是,這並不能保存我的數據庫的更改。我也不確定如何編程編輯。我也不確定是否應該有OLEDB更新命令。如果有任何不清楚的地方,請回復,我很樂意澄清。謝謝!
編輯:抱歉,如果它仍然很難理解!
這裏是一些代碼...
private void dgv_DataLookup_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
DialogResult dr;
dr = MessageBox.Show("Are you sure you want to edit this field?", "Edit Cell", MessageBoxButtons.YesNo);
if (dr == DialogResult.Yes)
{
//update the table in my database
}
}
這是不是很多呢,但我希望你可以嘗試看看我想要再做
編輯:這是所有相關的代碼對於這部分(這是顯示我想要編輯的datagridview的代碼)
OleDbConnection cs;
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet dsB = new DataSet();
//If clicked search button
else if (combo_View.Text == "Orders")
{
da.SelectCommand = new OleDbCommand("SELECT * FROM TestQuery WHERE (VendorName = @VendorName OR @VendorName = '') AND (CustomerName = @CustomerName OR @CustomerName = '') AND ((@From IS NULL AND @To IS NULL) OR orderDate BETWEEN @From AND @To) AND (ItemNum = @ItemNum OR @ItemNum = '') AND (PO = @PO OR @PO = '') ORDER BY CustomerName", cs);
da.SelectCommand.Parameters.Add("@VendorName", OleDbType.VarChar).Value = combo_VendorView.Text.ToString();
da.SelectCommand.Parameters.Add("@CustomerName", OleDbType.VarChar).Value = combo_CustomerView.Text.ToString();
if (!chk_viewAllDates.Checked)
{
da.SelectCommand.Parameters.Add("@From", OleDbType.Date).Value = "#" + tp_viewFrom.Value.Date.ToString("M/d/yyyy") + "#";
da.SelectCommand.Parameters.Add("@To", OleDbType.Date).Value = "#" + tp_viewTo.Value.Date.ToString("M/d/yyyy") + "#";
}
else
{
da.SelectCommand.Parameters.Add("@From", OleDbType.Date).Value = DBNull.Value;
da.SelectCommand.Parameters.Add("@To", OleDbType.Date).Value = DBNull.Value;
}
da.SelectCommand.Parameters.Add("@PO", OleDbType.VarChar).Value = txt_POLookup.Text.ToString();
da.SelectCommand.Parameters.Add("@ItemNum", OleDbType.VarChar).Value = combo_ItemNumLookup.Text.ToString();
dsB.Clear();
da.Fill(dsB);
dgv_DataLookup.DataSource = dsB.Tables[0];
}
請讓我知道如果你需要更多的代碼。任何幫助表示讚賞:)
在這裏添加一些代碼 –
@wilson - 這個問題還是很難理解的。 1)你在什麼環境下工作?你提到datagridview,但這是一個winforms控件,你也提到asp.net。 2)你需要做什麼?每次單元格更改時,您似乎都會要求保存數據,爲什麼不在其他時間? 3)提供一些代碼,試圖讓我們更深入地瞭解您需要什麼。 –
你有沒有看過你的代碼正在一步一步做?當你調用adapter.Update(dataset)時,你的數據集實際上是否有變化?如果切出datagridview並直接更新數據集會發生什麼? –