- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我构建了一个 c# 应用程序,您可以在其中登录并注册一个新帐户。但是当我点击我的新帐户按钮并填写必填字段时,我会收到以下错误:
vcom.ExecuteNonQuery(); -> OleDBException 未处理。 INSERT 指令包含语法错误。
请看下面我们的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace Eindopdracht
{
public partial class maak_account : Form
{
OleDbConnection vcon = new OleDbConnection(@"provider= microsoft.jet.oledb.4.0;data source=sample.mdb");
public maak_account()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OleDbConnection vcon = new OleDbConnection(@"provider= microsoft.jet.oledb.4.0;data source=sample.mdb");
vcon.Open();
string test = string.Format("insert into inlog (PASSWORD, Username, leeftijd, gewicht) VALUES ('" + textBox2.Text + "','" + textBox1.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')");
OleDbCommand vcom = new OleDbCommand(test, vcon);
vcom.ExecuteNonQuery();
MessageBox.Show("Uw gegevens zijn opgeslagen");
vcom.Dispose();
}
}
}
最佳答案
语法错误的原因是Password
,恰好是列名,是保留关键字。
insert into inlog ([PASSWORD], Username, leeftijd, gewicht)
来自 MS Access 文档,
If a reserved word is already in use, you can avoid error messages by surrounding each occurrence of the word with brackets ([ ]). However, the best solution is to change the name to a nonreserved word.
为了进一步完善代码,
using
语句来正确处理对象try-catch
正确处理异常例子,
string connStr = @"provider= microsoft.jet.oledb.4.0;data source=sample.mdb";
string test = "insert into inlog ([PASSWORD], Username, leeftijd, gewicht) VALUES (?, ?, ?, ?)";
using(OleDbConnection vcon = new OleDbConnection(connStr))
{
using(OleDbCommand vcom = new OleDbCommand(test, vcon))
{
vcom.Parameters.AddWithValue("PASSWORD", textBox2.Text);
vcom.Parameters.AddWithValue("Username", textBox1.Text);
vcom.Parameters.AddWithValue("leeftijd", textBox3.Text);
vcom.Parameters.AddWithValue("gewicht", textBox4.Text);
try
{
vcon.Open();
com.ExecuteNonQuery();
}
catch(OleDbException ex)
{
// do something with the exception
}
}
}
关于c# - OleDBException 错误插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15656936/
我需要捕获以下特定异常: System.Data.OleDb.OleDbException was caught ErrorCode=-2147467259 Message="The changes
如果我犯了错误,我似乎无法理解。 OleDbCommand command = new OleDbCommand(); command.Connection = con
我构建了一个 c# 应用程序,您可以在其中登录并注册一个新帐户。但是当我点击我的新帐户按钮并填写必填字段时,我会收到以下错误: vcom.ExecuteNonQuery(); -> OleDBExce
以下代码执行一个简单的插入命令。如果连续调用 2,000 次(插入 2,000 行),则会抛出消息为“已超出系统资源”的 OleDbException。我还应该做些什么来释放资源吗? using (O
我有以下代码来验证 MSAccess 2003 数据库是否被另一个应用程序以独占模式打开(数据库已经有密码): OleDbConnectionStringBuilder conString = new
我有以下代码(Windows 窗体的一部分)在我的机器上成功连接到 Excel 文件,但在不同的机器上却失败了。 var fd = new OpenFileDialog(); if (fd.ShowD
我在测试如何通过选择所需的列然后指定唯一 ID(即按主 ID、ID 排序的房间号)来获取最新的数据库条目时遇到此错误。 这是我的代码: Private Sub Form5_Load(ByVal s
我在测试如何通过选择所需的列然后指定唯一 ID(即按主 ID、ID 排序的房间号)来获取最新的数据库条目时遇到此错误。 这是我的代码: Private Sub Form5_Load(ByVal s
我在调试程序的时候发现了这个问题: System.Data.dll 中发生类型为“System.Data.OleDb.OleDbException”的未处理异常 附加信息:UPDATE 语句中的语法错
我正在使用以下代码更新 Excel 文件中的单元格。 public bool WriteChange(string Filename, string SheetName, string Cell, s
我有一个 excel 文件和一个 oledb 连接。在 Windows 中打开文件时读取数据时,会抛出以下错误(在 Adapter.Fill 方法处)。 但是,当文件未手动打开时,代码运行正常。 pr
尝试在我的 D 盘 (D:\TaalTipsDocumenten) 上的文件夹中搜索索引文件时出现异常(OleDBException:未指定错误)。我知道这段代码在过去(2 个月前)有效,但当我试图继
我创建了一个按钮 (Next) 以在名为 CHAPTERS 的表中导航; 我的问题是按钮工作了两次,有时是三次。之后我得到 [Not specified error]。 这是我的代码: Dim S A
我尝试编写代码来 Access 数据库,但在粗体字行出现 OldDbException 错误。我应该如何更改我的话,以便在运行时不会出现任何错误? private void submitbut
目录 可能解决方法1 可能解决方法2 可能解决办法3 可能解决办法4 异常详细信息: System.Data.OleDb.OleDbExcept
我在调试时遇到错误,请有人帮忙...下面是代码: Private Sub UpdateToolStripMenuItem_Click(ByVal sender As System.Object, B
我使用 Visual Studio Enterprise 2015 WPF 来完成我的项目,我的数据库是一个 ms access 文件我不确定为什么会出现此错误有人可以 System.Data.dll
您好,我是 C# 的新手,正在尝试连接到 .accdb access 2010 数据库 using System; using System.Collections.Generic; using Sy
我有一个 VB.Net 程序,它读取一个平面文件,然后逐行解析,将数据格式化为 excel 工作簿中的不同电子表格(每行可以是任何 10 多种不同的记录类型,所以我解析并放入适当的 excel床单)。
我是编程新手,我在 VB.net 中编写的 Web 应用程序有问题。我的项目中有一个 Access 数据库,并且正在使用参数化查询从中检索信息。奇怪的是,我在另一个工作正常的页面上使用了几乎相同的查询
我是一名优秀的程序员,十分优秀!