DataGridView.Datasource = null;错误:未将对象引用设置为对象的实例

发布于 2024-12-11 05:37:57 字数 623 浏览 0 评论 0原文

我很困惑为什么将 datagridview 控件的数据源设置为 null 会导致“对象引用未设置到对象的实例”错误。提前致谢

while (xmlReader.Read())
{
    if ((xmlReader.NodeType == XmlNodeType.Element) && (xmlReader.Name == "deposits"))
    {
        oDeposit.DepAmt = Convert.ToDouble(xmlReader.GetAttribute("depamount"));
        oDeposit.DepDate = Convert.ToDateTime(xmlReader.GetAttribute("depdate"));
        oDeposit.DepositId = Convert.ToInt32(xmlReader.GetAttribute("depid"));

        oCustomer.addDeposits(oDeposit);
        **dgvDeposits.DataSource = null;**
        dgvDeposits.DataSource = oCustomer.Deposits;            
    }
}

I'm confused as to why setting the datasource of a datagridview control to null, would cause an "object reference not set to an instance of an object" error. Thanks in advance

while (xmlReader.Read())
{
    if ((xmlReader.NodeType == XmlNodeType.Element) && (xmlReader.Name == "deposits"))
    {
        oDeposit.DepAmt = Convert.ToDouble(xmlReader.GetAttribute("depamount"));
        oDeposit.DepDate = Convert.ToDateTime(xmlReader.GetAttribute("depdate"));
        oDeposit.DepositId = Convert.ToInt32(xmlReader.GetAttribute("depid"));

        oCustomer.addDeposits(oDeposit);
        **dgvDeposits.DataSource = null;**
        dgvDeposits.DataSource = oCustomer.Deposits;            
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夢归不見 2024-12-18 05:37:57

您应该使用此选项,而不是将 DataSource 设置为 null:

dgvDeposits.DataSource = typeof(Deposit);

请检查以下可能存在的问题对您的例外情况的解释。

You should use this instead of setting DataSource to null:

dgvDeposits.DataSource = typeof(Deposit);

Please check following question it might have an explanation for your exception.

聆听风音 2024-12-18 05:37:57

好吧,我知道我对此很陌生,但我也遇到了同样类型的问题。我发现使用 DataGridView 中的列创建数据表,然后将该表设置为数据源可以解决问题。

DataTable dt = new DataTable();
dt.Columns.Add("DepAmt", typeof(double));
dt.Columns.Add("DepDate", typeof(DateTime));
dt.Columns.Add("DepositId", typeof(int));
dgvDeposits.DataSource = dt;       

这个网站是我引用的。

Ok, So I know I'm new to this, but I had the same type of problem. I found that creating a DataTable using the Columns in the DataGridView then setting the table as the DataSource fixes the problem.

DataTable dt = new DataTable();
dt.Columns.Add("DepAmt", typeof(double));
dt.Columns.Add("DepDate", typeof(DateTime));
dt.Columns.Add("DepositId", typeof(int));
dgvDeposits.DataSource = dt;       

This site is what I referenced.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文