首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空引用异常

空引用异常
EN

Stack Overflow用户
提问于 2009-01-17 01:21:42
回答 4查看 719关注 0票数 0

此代码生成和空引用异常。异常发生在初始化参数数组的行上。会有什么问题呢?我不知道如何跟踪堆栈跟踪并在其上处理任何逻辑。提前谢谢。

代码语言:javascript
复制
DAL dal = new DAL();

    string SQL = @"INSERT INTO Assets ([AssetName],[AssetType],[Model],[Description],
                                                          [PurchaseValue],[SalvageValue],[Currency],[DateAcquired,[DateRetire],[ImagePath],
                                                          [InUse])
                                                          VALUES (?,?,?,?,?,?,?,?,?,?,?)";

    OleDbParameter[] par = new OleDbParameter[]{ 
    new OleDbParameter("@assetname",name.Text),
    new OleDbParameter("@assettype",assettypes.SelectedValue.ToString()),
    new OleDbParameter("@model",model.Text),
    new OleDbParameter("@description",description.Text),
    new OleDbParameter("@purchasevalue",purchaseval.Value),
    new OleDbParameter("@salvagevalue",salvageval.Value),
    new OleDbParameter("@currency",currencies.SelectedIndex),
    new OleDbParameter("@dateacquired",purchasedate.Value),
    new OleDbParameter("@dateretire",purchasedate.Value.AddYears((int)lifetime.Value)),
    new OleDbParameter("@imagepath","N/A"),
    new OleDbParameter("@addedby",MDIParent1.User.ID)
    };
EN

回答 4

Stack Overflow用户

发布于 2009-01-17 01:26:53

您可能有一个或多个可以为空的类型(可能是您的日期?)它没有值,尽管也可能没有SelectedValue。检查调试器中语句前的所有参数是否都非空,以了解哪些参数是非空的。

票数 6
EN

Stack Overflow用户

发布于 2009-01-17 01:27:48

似乎最有可能的是,您正在查询的某个对象为空。

我建议将它们打印为标准输出。

票数 2
EN

Stack Overflow用户

发布于 2009-01-17 01:33:28

其中一行包含空引用:

代码语言:javascript
复制
new OleDbParameter("@assetname",name.Text),
new OleDbParameter("@assettype",assettypes.SelectedValue.ToString()),
new OleDbParameter("@model",model.Text),
new OleDbParameter("@description",description.Text),
new OleDbParameter("@purchasevalue",purchaseval.Value),
new OleDbParameter("@salvagevalue",salvageval.Value),
new OleDbParameter("@currency",currencies.SelectedIndex),
new OleDbParameter("@dateacquired",purchasedate.Value),
new OleDbParameter("@dateretire",purchasedate.Value.AddYears((int)lifetime.Value)),
new OleDbParameter("@imagepath","N/A"),
new OleDbParameter("@addedby",MDIParent1.User.ID)

看看调试器中的属性值,对于您提供的代码,我们真的无能为力。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/452613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档