Я знаю, что это много раз задавалось здесь, в SOF, но, уверяю вас, я пробовал все, например .refresh, .update, вызывал метод после вставки и т. Д., Но ничего не произошло, мне нужно снова обновить свой пользовательский элемент управления, чтобы увидетьновое изменение данных в datagridview.Я использую хранимую процедуру для отображения данных в моем сетевом представлении, а также для вставки, обновления и т. Д. Я надеюсь, что кто-то сможет помочь мне определить, что я делаю неправильно или что я пропустил.Спасибо
Вот мой класс для отображения данных в моем datagridview
public static class Display
{
public static void Display_Customer(DataTable dt, DataGridView dgv)
{
using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["SalesInventoryManagement.Properties.Settings.Setting"].ConnectionString))
{
using (var cmd = new SqlCommand("usp_GetCustomers", con))
{
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
using (var sda = new SqlDataAdapter(cmd))
{
sda.Fill(dt);
var bsource = new BindingSource();
bsource.DataSource = dt;
dgv.DataSource = bsource;
sda.Update(dt);
}
con.Close();
}
}
}
}
Вот мой usercontrol, где мои элементы управления, такие как datagridview, кнопка и т. Д.
public partial class ManageCustomer : UserControl
{
public ManageCustomer()
{
InitializeComponent();
}
public DataTable dt = new DataTable();
private void ManageCustomer_Load(object sender, EventArgs e)
{
Display.Display_Customer(dt, CustomersList);
Customization._DGVWidth(CustomersList);
}
private void CustomersList_SelectionChanged(object sender, EventArgs e)
{
Register.CustomerSelection(CustomersList, lbl_id, lbl_name, lbl_gender,
lbl_contact,lbl_email, lbl_address, PreviewImage);
}
private void Btn_Update_Click(object sender, EventArgs e)
{
var uc = new UpdateCustomer(this).ShowDialog();
}
private void CustomersList_RowEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridViewRow row = CustomersList.Rows[e.RowIndex];
Variables.ID = row.Cells["Customer ID"].Value.ToString();
}
}
}
Вот форма, котораяполучить данные из сетки данных на основе идентификатора PS: Btn_Update показать новую форму для моего usercontrol
public partial class UpdateCustomer : Form
{
ManageCustomer _view;
public UpdateCustomer(ManageCustomer view)
{
InitializeComponent();
UpdateC.CustomerInformation(Variables.ID, lbl_path, PreviewImage, txt_name, txt_contact, txt_email, txt_address);
this._view = view;
}
private void btn_update_Click(object sender, EventArgs e)
{
using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["SalesInventoryManagement.Properties.Settings.Setting"].ConnectionString))
{
UpdateC._Update(lbl_path.Text, txt_name.Text, txt_contact.Text, txt_email.Text, txt_address.Text);
Display.Display_Customer(_view.dt, _view.CustomersList);
}
}
}
Наконец, вот мой сохраненный процесс
USE [SalesInventory]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[usp_GetCustomers]
AS
BEGIN
SET NOCOUNT ON;
SELECT CustomerID as 'Customer ID', Images, Full_Name, Gender, Contact_Number as 'Contact Number', Email, Home_Address as 'Address'
FROM Customer_List
END