为什么来自 class 的存储过程数据不显示在我的表单的 Datagridview 中
Why Stored Procedure Data from a class doesn't display in Datagridview on my form
我正在尝试将此代码转移到 class 以避免表单/用户控件中的代码混乱。当代码在我的表单/用户控件中时,我在我的 datagridview 中成功显示了数据存储过程,但是当我尝试 class 它不再起作用时。这是我在 class:
中使用的代码
我的class:
public class DisplayCustomer
{
public 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_GetCustomer", con))
{
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
using (var sda = new SqlDataAdapter(cmd))
{
dt = new DataTable();
sda.Fill(dt);
// dt.Load(cmd.ExecuteReader());
dgv = new DataGridView { DataSource = dt };
}
con.Close();
}
}
}
}
我的用户控件:
public partial class ManageCustomer : UserControl
{
public ManageCustomer()
{
InitializeComponent();
}
public DataTable dbdataset;
private void ManageCustomer_Load(object sender, EventArgs e)
{
DisplayCustomer dc = new DisplayCustomer();
dc.Display_Customer(dbdataset, CustomersList);
}
}
我觉得有两个问题,
使用现有的 Datagridview,而不是创建新的。
dgv = new DataGridView { DataSource = dt };
尝试做:
dgv.DataSource = dt;
此外,如果您的 Datagridview 位于 UserControl,请将其作为
传递
ref
Display_Customer(DataTable dt, ref DataGridView dgv)
所以,当你调用它时
dc.Display_Customer(dbdataset, ref CustomersList);
如果这没有帮助,请告诉我。我还在去办公室的路上......所以,没有测试代码。 :)
试试看并更新我
我正在尝试将此代码转移到 class 以避免表单/用户控件中的代码混乱。当代码在我的表单/用户控件中时,我在我的 datagridview 中成功显示了数据存储过程,但是当我尝试 class 它不再起作用时。这是我在 class:
中使用的代码我的class:
public class DisplayCustomer
{
public 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_GetCustomer", con))
{
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
using (var sda = new SqlDataAdapter(cmd))
{
dt = new DataTable();
sda.Fill(dt);
// dt.Load(cmd.ExecuteReader());
dgv = new DataGridView { DataSource = dt };
}
con.Close();
}
}
}
}
我的用户控件:
public partial class ManageCustomer : UserControl
{
public ManageCustomer()
{
InitializeComponent();
}
public DataTable dbdataset;
private void ManageCustomer_Load(object sender, EventArgs e)
{
DisplayCustomer dc = new DisplayCustomer();
dc.Display_Customer(dbdataset, CustomersList);
}
}
我觉得有两个问题,
使用现有的 Datagridview,而不是创建新的。
dgv = new DataGridView { DataSource = dt };
尝试做:
dgv.DataSource = dt;
此外,如果您的 Datagridview 位于 UserControl,请将其作为
传递
ref
Display_Customer(DataTable dt, ref DataGridView dgv)
所以,当你调用它时
dc.Display_Customer(dbdataset, ref CustomersList);
如果这没有帮助,请告诉我。我还在去办公室的路上......所以,没有测试代码。 :) 试试看并更新我