[英]Add row to gridview from a button c# VB.FORM
Good morning, I am trying to add from 1 button 1 new row to my gridview form in c # vb.net and sql server, but I can't find the function to add 1 new row to the gridview using a button
到目前為止,我只向 gridview 顯示了記錄,這是我顯示數據的代碼。
private void txtcod_TextChanged(object sender, EventArgs e)
{
if (txtcod.Text == "")
{
}
else {
this.dgvcontactos.DataSource = negCli.DatosContacto(MODULOS.Globales.Base, txtcod.Text);
}
}
這是我的data_layer,我有1個調用存儲過程的function
public DataTable Contactos_ClieProvs(String basesita, String codClie) { DataTable dt = new DataTable(); try { SqlConnection cnn = new SqlConnection(conexion.CargarBase(basesita)); SqlCommand cmd = new SqlCommand("execute CONTACTOS @tipo=13,@IdClieProv='" + codClie + "'", cnn); //cmd.CommandTimeout = 0; SqlDataAdapter da = new SqlDataAdapter(cmd); try { if (cnn.State == ConnectionState.Closed) { cnn.Open(); } else { cnn.Close(); cnn.Open(); } da.Fill(dt); } catch (SqlException ex) { throw ex; } finally { cnn.Close(); } } catch (SqlException ex1) { throw ex1; } return dt; }
通過我的數據庫中的存儲過程,來自聯系人的 select *,我正在處理 N 層,到目前為止一切都很好,我想要的是通過一個按鈕將 1 行添加到 gridview 一旦保存的行隨着保存按鈕被填滿,他們會有任何想法。
您可以在 DataTable 中添加一行,它將顯示在網格上。
但是考慮使用 BindingSource 總是好的,您可以在其中按事件設置新行的初始化。
System.Windows.Forms.BindingSource bs = new System.Windows.Forms.BindingSource();
private void txtcod_TextChanged(object sender, EventArgs e)
{
if ("" == "") return;
var dt = negCli.DatosContacto(MODULOS.Globales.Base, txtcod.Text);
bs.DataSource = dt;
bs.AddingNew +=bs_AddingNew;
dt.RowDeleting +=dt_RowDeleting;
this.dgvcontactos.DataSource = bs;
}
void dt_RowDeleting(object sender, DataRowChangeEventArgs e)
{
// Delete from db
}
void bs_AddingNew(object sender, System.ComponentModel.AddingNewEventArgs e)
{
// init new row columns with init values in e.NewObject;
}
private void btnAddNew(object sender, EventArgs e) {
bs.AddNew();
}
private void btnSave(object sender, EventArgs e) {
var dt = bs.DataSource as DataTable;
foreach(DataRow r in dt.GetChanges().Rows) {
if(r.RowState == DataRowState.Added) {
// Save to db
}
if(r.RowState == DataRowState.Modified) {
// Save changes
}
}
dt.AcceptChanges();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.