Amar chand123 Ответов: 1

Необработанное исключение типа "system.data.oledb.oledbexception" произошло в system.data.dll дополнительная информация: синтаксическая ошибка в инструкции INSERT into..


An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll
Additional information: Syntax error in INSERT INTO statement..


Эта ошибка отображается при попытке сохранить запись только в первой таблице данные сохраняются успешно но во второй таблице данные не сохраняются и показывают ошибку
поэтому, пожалуйста, помогите мне решить эту проблему.
мой код здесь:
сначала у меня есть две таблицы в моей базе данных CUSTOMER и второе MONTHLYINSTALLMENT

Что я уже пробовал:

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;
using System.Configuration;


namespace Fincorp
{
    public partial class NewCustomerEntry : Form
    {
        public NewCustomerEntry()
        {
            InitializeComponent();
        }

        private void NewCustomerEntry_Load(object sender, EventArgs e)
        {
           
        }

        private void textBoxMobileNo_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBoxNetLoanAmt_TextChanged(object sender, EventArgs e)
        {

        }

        private void btnexitCustomerEntry_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnsaveCustomerEntry_Click(object sender, EventArgs e)
        {
            if (IsValidated())
            {
                try
                {
                    SaveRecord(); tabControl1.SelectTab(tabPage2); SaveRecord1();
                    
                }
                catch (ApplicationException ex)
                {
                    MessageBox.Show("Error:" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        private void SaveRecord()
        {
            String connstring = ConfigurationManager.ConnectionStrings["vijay"].ConnectionString;
            string cmdstring = "insert into customer (LoanNumber, LoanDate, CustomerName, FatherName, Address, MobileNo, SecMobileNo, City, District, State) VALUES (@LoanNumber, @LoanDate, @CustomerName, @FatherName, @Address, @MobileNo, @SecMobileNo, @City, @District, @State)";
          
            using (OleDbConnection con = new OleDbConnection(connstring))
            {
                using (OleDbCommand cmd = new OleDbCommand(cmdstring, con))
                {
                    con.Open();

                    cmd.Parameters.AddWithValue("@LoanNumber", textBoxLoanNumber.Text);
                    cmd.Parameters.AddWithValue("@LoanDate", textBoxLoanDate.Text);
                    cmd.Parameters.AddWithValue("@CustomerName", txtCustomerName.Text);
                    cmd.Parameters.AddWithValue("@FatherName", txtFatherName.Text);
                    cmd.Parameters.AddWithValue("@Address", txtAddress.Text);
                    cmd.Parameters.AddWithValue("@MobileNo", txtMobileNo.Text);
                    cmd.Parameters.AddWithValue("@SecMobileNo", txtSecMobileno.Text);
                    cmd.Parameters.AddWithValue("@City", txtCity.Text);
                    cmd.Parameters.AddWithValue("@District", txtDistrict.Text);
                    cmd.Parameters.AddWithValue("@State", txtState.Text);
                    
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Recourd is saved", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    con.Close();
                }   
            }
        }

        private void SaveRecord1()
        {
            tabControl1.SelectTab(tabPage2);
            {
                String connstring = ConfigurationManager.ConnectionStrings["vijay"].ConnectionString;
                string cmdstring = "insert into monthlyinstalment (LoanNumber, Price, DownPayment, FileCharge, Month, Intrest) VALUE (@LoanNumber1, @Price, @DownPayment, @FileCharge, @Month, @Intrest)";

                using (OleDbConnection con = new OleDbConnection(connstring))
                {
                    using (OleDbCommand cmd = new OleDbCommand(cmdstring, con))
                    {
                        con.Open();

                        cmd.Parameters.AddWithValue("@LoanNumber1", textBoxLoanNumber.Text);
                        cmd.Parameters.AddWithValue("@Price", txtPrice.Text);
                        cmd.Parameters.AddWithValue("@DownPayment", txtDownPayment.Text);
                        cmd.Parameters.AddWithValue("@FileCharge", txtFileCharge.Text);
                        cmd.Parameters.AddWithValue("@Month", txtMonth.Text);
                        cmd.Parameters.AddWithValue("@Intrest", txtInterest.Text);

                        cmd.ExecuteNonQuery();
                        con.Close();
                    }
                }
            }
        }

        private bool IsValidated()
        {
           if (txtCustomerName.Text.Trim() == string.Empty)
           {
               MessageBox.Show("Customer Name is Requied", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
               txtCustomerName.Focus();
               return false;
           }

           if (txtFatherName.Text.Trim() == string.Empty)
           {
               MessageBox.Show("Father's Name is Requied", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
               txtFatherName.Focus();
               return false;
           }

           if (txtAddress.Text.Trim() == string.Empty)
           {
               MessageBox.Show("Address is Requied", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
               txtAddress.Focus();
               return false;
           }

           if (txtMobileNo.Text.Trim() == string.Empty)
           {
               MessageBox.Show("Mobile Number is Requied", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
               txtMobileNo.Focus();
               return false;
           }


           if (txtPrice.Text.Trim() == string.Empty)
           {
               MessageBox.Show("Loan Amount is Requied", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
               tabControl1.SelectTab(tabPage2);  txtPrice.Focus();
               return false;
           }

           if (txtDownPayment.Text.Trim() == string.Empty)
           {
               MessageBox.Show("Down Payment is Requied", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
               tabControl1.SelectTab(tabPage2);  txtDownPayment.Focus();
               return false;
           }

           if (txtFileCharge.Text.Trim() == string.Empty)
           {
               MessageBox.Show("File Charge is Requied", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
               tabControl1.SelectTab(tabPage2);  txtFileCharge.Focus();
               return false;
           }
           if (txtMonth.Text.Trim() == string.Empty)
           {
               MessageBox.Show("Month is Requied", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
               tabControl1.SelectTab(tabPage2);  txtMonth.Focus();
               return false;
           }

           if (txtInterest.Text.Trim() == string.Empty)
           {
               MessageBox.Show("Interest Rate is Requied", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
               tabControl1.SelectTab(tabPage2); txtInterest.Focus();
               return false;
           }
            
            return true;
        }
    }
}

Richard MacCutchan

Скорее всего, что-то в одном из ваших текстовых полей недопустимо. Используйте свой отладчик для проверки.

1 Ответов

Рейтинг:
8

Wendelius

кажется, ты пропал. S из VALUES ключевое слово.

Вместо

string cmdstring = "insert into monthlyinstalment (LoanNumber, Price, DownPayment, FileCharge, Month, Intrest) VALUE (@LoanNumber1, @Price, @DownPayment, @FileCharge, @Month, @Intrest)";

использовать
string cmdstring = "insert into monthlyinstalment (LoanNumber, Price, DownPayment, FileCharge, Month, Intrest) VALUES (@LoanNumber1, @Price, @DownPayment, @FileCharge, @Month, @Intrest)";


Amar chand123

Венделиус, я меняю "ценность" на "ценности", но проблема остается той же самой

Wendelius

Какое исключение вы сейчас получаете ?

Основываясь на вашем посте, должно ли имя таблицы быть MONTHLYINSTALLMENT вместо MONTHLYINSTALMENT, возможно, отсутствует один L?

Amar chand123

Исправлена ежемесячная установка, но проблема остается прежней
https://snipboard.io/6h09Vl.jpg
конструктор

Wendelius

Не могли бы вы опубликовать эту ошибку просто в виде текста здесь. Я не могу получить доступ к сайту, на который вы ссылаетесь.

Amar chand123

Необработанное исключение типа 'System.Data.OleDb.OleDbException' произошло в System.Data.dll

Дополнительная информация: синтаксическая ошибка в инструкции INSERT INTO.

Wendelius

Не могли бы вы также опубликовать текущее утверждение, вызывающее эту проблему (после всех изменений)

Amar chand123

Сэр если вы пришлете мне свою электронную почту чем я отправлю свой файл проекта
Та Же Ошибка

Необработанное исключение типа 'System.Data.OleDb.OleDbException' произошло в System.Data.dll

Дополнительная информация: синтаксическая ошибка в инструкции INSERT INTO.

Wendelius

Если бы вы могли опубликовать текущий, неудачный оператор SQL здесь, это было бы лучше всего.

Wendelius

Мне пришла в голову одна мысль. В зависимости от системы баз данных вы используете это слово month может быть, это сдержанное слово. Если это так попробуйте окружить его скобками [month] (или любой другой механизм, используемый в вашей базе данных).

Amar chand123

Спасибо тебе @Wendelius
это работает :) [Действительно месяц - это зарезервированное слово]
Я меняю "месяц" на "Монт", и ошибка исчезает, наконец-то проблема решена,
Я пытаюсь найти во всем Интернете решение этой проблемы, теперь я расслаблен
Теперь все данные сохраняются без каких-либо ошибок

Спасибо Ваше

Wendelius

Пожалуйста

Wendelius

Пожалуйста, опубликуйте полное сообщение об ошибке, которое вы получите.

Amar chand123

вывод из отладки

'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Хостингпроцесс.Утилиты\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Хостингпроцесс.Utilities.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Окна.Формы\v4.0_4.0.0.0__b77a5c561934e089\система.Окна.Forms.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Чертеж\v4.0_4.0.0.0__b03f5f7f11d50a3a\система.Drawing.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Хостингпроцесс.Коммунальные услуги.Sync\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Хостингпроцесс.Utilities.Sync.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Отладчик.Runtime\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Отладчик.Runtime.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Users\VIJAY\Documents\Visual студия 2013\проекты\новинка folder\Fincorp\bin\Debug\Fincorp.vshost.exe". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Конфигурация\v4.0_4.0.0.0__b03f5f7f11d50a3a\система.Configuration.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): загружено 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll'. Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): загружено 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.DataSetExtensions\v4.0_4.0.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll'. Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft-да.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.CSharp.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
'Fincorp.vshost.exe' (CLR v4.0.30319: Fincorp.vshost.exe): заряжен 'C:\Windows\Microsoft.Net\assembly\GAC_32\System-да.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll". Пропущенные символы загрузки. Модуль оптимизирован, и опция отладчика "только мой код" включена