【问题标题】:An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dllSystem.Data.dll 中出现“System.Data.OleDb.OleDbException”类型的未处理异常
【发布时间】:2017-09-15 21:53:38
【问题描述】:

我是 C# 程序员的新手,我在学习 youtube 上的教程时编写了一个代码,我想通过添加功能来改进它。

但是,当我运行程序时,我不断收到错误:

“System.Data.OleDb.OleDbException”类型的未处理异常 发生在 System.Data.dll

内部异常是:

INSERT INTO 语句中的语法错误

我检查了一下,代码对我来说似乎是正确的。

我仔细检查了 Access 文件中的所有列,所有列都拼写正确。

这是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
namespace Biletotomasyon
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        OleDbConnection baglanti=new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/Users/msi-nb/Documents/Visual Studio 2013/Projects/Biletotomasyon/YOLCU.accdb");


        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {

        }

        private void label7_Click(object sender, EventArgs e)
        {

        }

        private void comboBox7_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void button56_Click(object sender, EventArgs e)
        {
            baglanti.Open();
            OleDbCommand komut=new OleDbCommand ("INSERT INTO YOLCU (SEFER SAYISI,GÜZERGAH,VARİŞ YERİ,TARİH,SAAT,PERON,AD SOYAD,KOLTUKNO,TAM BİLET ÜCRETİ,TC,IB SAYISI,TOPLAM ÜCRET,CİNSİYET,BİLET CİNSİ) values ('"+comboBox7.Text.ToString()+"','"+comboBox6.Text.ToString()+"','"+comboBox1.Text.ToString()+"','"+ dateTimePicker1.Text.ToString()+"','"+comboBox5.Text.ToString()+"','"+comboBox2.Text.ToString()+"','"+textBox1.Text.ToString()+"','"+comboBox4.Text.ToString()+"','"+comboBox3.Text.ToString()+"','"+textBox2.Text.ToString()+"','"+textBox3.Text.ToString()+"',,'"+textBox4.Text.ToString()+"','"+radioButton1.Text.ToString()+"','"+radioButton3.Text.ToString()+"')",baglanti);
            komut.ExecuteNonQuery();
            baglanti.Close();


        }
    }
}

有什么问题?我该如何解决?

【问题讨论】:

标签: c#


【解决方案1】:

那是因为你的列有像TOPLAM ÜCRET,BİLET CİNSİ 这样的空格,需要像"TOPLAM ÜCRET" 那样转义,或者如果使用MS Access,那么[TOPLAM ÜCRET]

【讨论】:

  • l 从 Access 和 code 中删除了空格,但是,问题仍然存在于 table.l 删除了一个逗号,正如 mjwill 所说。
  • 在我根据建议更正后,我在查询表达式''2017-1-01AB2013,'ADANA','ANKARA','Tuesday'中得到了新错误“语法错误(缺少运算符)。 "我找不到失踪的操作员在哪里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 2021-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多