未将对象引用设置为对象的实例 - 错误

发布于 2024-09-06 03:45:20 字数 177 浏览 8 评论 0原文

我正在尝试从 Visual C# 插入 Access 数据库。但我收到此错误: 错误

我在代码中做错了什么?这些值是正确的,它们来自输入框。

谢谢!

I'm trying to insert in an Access Database, from visual C#. But i got this error: error

What am I doing wrong in code? The values are correct, they comes from the input boxes.

Thanks!

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

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

发布评论

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

评论(3

柒夜笙歌凉 2024-09-13 03:45:20

从图中看来,adapter.InsertCommand 属性为 null。
而不是

adapter.Insertcommand.CommandText = ...

使用

insertCommand.CommandText = ...
adapter.InsertCommand = insertCommand;

From the picture it looks like the adapter.InsertCommand property is null.
Instead of

adapter.Insertcommand.CommandText = ...

use

insertCommand.CommandText = ...
adapter.InsertCommand = insertCommand;
愛上了 2024-09-13 03:45:20

您正在创建 OleDbDataAdapter 适配器,还可以创建一个(独立的)OleDbCommand insertCommand - 但您adapter.InsertCommand 创建一个实例 - 该变量将为 NULL !

您需要执行以下操作:

OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.InsertCommand = new OleDbCommand();

创建 adapter.InsertCommand 而不是独立实例。

You're creating the OleDbDataAdapter adapter ok, and you're creating a (stand-alone) OleDbCommand insertCommand as well - but you're NOT creating an instance for adapter.InsertCommand - that variable will be NULL !

You need to do:

OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.InsertCommand = new OleDbCommand();

Create the adapter.InsertCommand instead of a stand-alone instance.

只是一片海 2024-09-13 03:45:20

在图片的左下角,我看到“adapter.InserCommand”为空,而在创建新的“oleDbCommand”后发生错误,这是异常的根源。为什么 ?因为您创建了一个“oleDbCommand”并且没有将其分配给您的适配器。

无论如何,不​​推荐您处理sql的方式,并且代码容易受到sql注入攻击。
另外,不建议将大量代码放入“Try”块中,因为稍后您无法找到问题的根源。

At bottom left of picture I see "adapter.InserCommand" is null while the error occurred after you created a new "oleDbCommand" and it's the source of exception. Why ? Because you created one "oleDbCommand" and didn't assign it to your adapter.

Anyway, the way you deal with sql is not recommended and the code is prone to sql injection attacks.
Also putting a large amount of code inside a "Try" block is not recommended since you cannot find the source of problem later.

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