Ошибка There was an error parsing the query. [ Token line number = 1,Token line offset = 43,Token in error = записи ] - C#

Узнай цену своей работы

Формулировка задачи:

В чем проблема, не могу понять. Вот исходник:
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.IO;

using System.Data.SqlServerCe;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            // настройка компонента ListView:
            // увеличим ширину компонента на 17 - ширину
            // полосы прокрутки
            int w = 0;
            for (int i = 0; i < listView1.Columns.Count; i++)
            {
                w += listView1.Columns[i].Width;
            }
            
            if (listView1.BorderStyle == BorderStyle.Fixed3D)
                w += 4;
            
            listView1.Width = w+17;  // 17 - область отображения полосы прокрутки 
 
            // выделять всю строку (элемент и подэлементы)
            listView1.FullRowSelect = true;
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // Cоздать БД SQL Server Compact Edition.
            // Если путь к файлу не указан, БД будет создана
            // в каталоге приложения
            SqlCeEngine engine;
            
            engine = new SqlCeEngine("Data Source='notebook.sdf';");
            if (!(File.Exists("notebook.sdf")))
            {
                engine.CreateDatabase();
                SqlCeConnection connection = new SqlCeConnection(engine.LocalConnectionString);
                connection.Open();
                SqlCeCommand command = connection.CreateCommand();
                command.CommandText =
                    "CREATE TABLE notebook (№ записи int IDENTITY(1,1), Заголовок записи nvarchar(50) NOT NULL, Дата записи(50), Запись nvarchar(50))";
                command.ExecuteScalar();
                connection.Close();
            }
            else
            {
                ShowDB();
            }
        }
 
        private void ShowDB()
        {
            SqlCeEngine engine = new SqlCeEngine("Data Source='notebook.sdf';");
            SqlCeConnection connection = new SqlCeConnection(engine.LocalConnectionString);
            connection.Open();
            SqlCeCommand command = connection.CreateCommand();
            command.CommandText = "SELECT * FROM notebook ORDER BY Заголовок записи";
            [COLOR="Yellow"]SqlCeDataReader dataReader = command.ExecuteReader();[/COLOR]
 
            string st;  // значение поля БД
            int itemIndex = 0;
 
            listView1.Items.Clear();
 
            while (dataReader.Read())
            {
                for (int i = 0; i < dataReader.FieldCount; i++)
                {
                    st = dataReader.GetValue(i).ToString();
                    switch (i)
                    {
                        case 0:  // поле cid
                            listView1.Items.Add(st);
                            break;
                        case 1:  // поле name
                            listView1.Items[itemIndex].SubItems.Add(st);
                            //listView1.Items.Add(st);
                            break;
                        case 2:  // поле phone
                            listView1.Items[itemIndex].SubItems.Add(st);
                            break;
                        case 3:  // поле email
                            listView1.Items[itemIndex].SubItems.Add(st);
                            break;
                    };
                }
                itemIndex++;
            }
            connection.Close();
        }
 
        // пользователь выбрал строку в поле компонента listView
        private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            // При выборе строки событие ItemSelectionChanged возникает два раза:
            // первый раз, когда выделенная в данный момент строка теряут фокус,
            // второй - когда строка, в которой сделан щелчок, получает фокус.
            // Нас интересует строка, которая получает фокус.
            if (e.IsSelected)
            {
                // строка выбрана, т.е. она получила фокус
                textBox4.Text = listView1.Items[e.ItemIndex].Text;
 
                for (int i = 1; i < listView1.Items[e.ItemIndex].SubItems.Count; i++)
                {
                    switch (i)
                    {
                        case 1:
                            textBox1.Text = listView1.Items[e.ItemIndex].SubItems[i].Text;
                            break;
                        case 2:
                            textBox2.Text = listView1.Items[e.ItemIndex].SubItems[i].Text;
                            break;
                        case 3:
                            textBox3.Text = listView1.Items[e.ItemIndex].SubItems[i].Text;
                            break;
                    }
                }
            }
        }
 
        // щелчок на кнопке Добавить
        private void button1_Click(object sender, EventArgs e)
        {
            SqlCeConnection conn = new SqlCeConnection("Data Source ='notebook.sdf'");
            conn.Open();
            SqlCeCommand command = conn.CreateCommand();
            command.CommandText = "INSERT INTO notebook(Заголовок записи, Дата записи, Запись) VALUES(?,?,?)";
            command.Parameters.Add("Заголовок записи", textBox1.Text);
            command.Parameters.Add("Дата записи", textBox2.Text);
            command.Parameters.Add("Запись", textBox3.Text);
            command.ExecuteScalar();
            conn.Close();
 
            // очистить поля ввода
            textBox1.Clear();
            textBox2.Clear();
            textBox3.Clear();
 
            ShowDB();
 
            // установить курсор в поле textBox1
            textBox1.Focus();
        }
 
        // щелчок на кнопке Найти
        private void button2_Click(object sender, EventArgs e)
        {
            SqlCeEngine engine = new SqlCeEngine("Data Source='notebook.sdf';");
            SqlCeConnection connection = new SqlCeConnection(engine.LocalConnectionString);
            connection.Open();
            
            SqlCeCommand command = connection.CreateCommand();
 
            command.CommandText = "SELECT * FROM notebook WHERE (Заголовок записи LIKE ?)";
            command.Parameters.Add("Заголовок записи", "%" + textBox1.Text + "%");
            
            SqlCeDataReader dataReader = command.ExecuteReader();
 
            string st;  // значение поля БД
            int itemIndex = 0;
 
            listView1.Items.Clear();
 
            while (dataReader.Read())
            {
                for (int i = 0; i < dataReader.FieldCount; i++)
                {
                    st = dataReader.GetValue(i).ToString();
                    switch (i)
                    {
                        case 0:  // поле cid
                            listView1.Items.Add(st);
                            break;
                        case 1:  // поле name
                            //listView1.Items.Add(st);
                            listView1.Items[itemIndex].SubItems.Add(st);
                            break;
                        case 2:  // поле phone
                            listView1.Items[itemIndex].SubItems.Add(st);
                            break;
                        case 3:  // поле email
                            listView1.Items[itemIndex].SubItems.Add(st);
                            break;
                    };
                }
                itemIndex++;
            }
            connection.Close();
            
        }
 
        // щелчок на кнопке Удалить
        private void button3_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count != 0)
            {
                //MessageBox.Show(listView1.SelectedItems[0].Text);
 
                SqlCeEngine engine = new SqlCeEngine("Data Source='notebook.sdf';");
                SqlCeConnection connection = new SqlCeConnection(engine.LocalConnectionString);
                connection.Open();
 
                SqlCeCommand command = connection.CreateCommand();
                command.CommandText = "DELETE FROM notebook WHERE (№ записи = ?)";
                command.Parameters.Add("№ записи", textBox4.Text);
                command.ExecuteScalar(); // выполнить команду

                ShowDB();
 
                textBox1.Clear();
                textBox2.Clear();
                textBox3.Clear();
                textBox4.Clear();
            }
        }
 
        // щелчок на кнопке Изменить
        private void button4_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count != 0)
            {
                SqlCeEngine engine = new SqlCeEngine("Data Source='notebook.sdf';");
                SqlCeConnection connection = new SqlCeConnection(engine.LocalConnectionString);
                connection.Open();
 
                SqlCeCommand command = connection.CreateCommand();
 
                command.CommandText = "UPDATE notebook SET Заголовок записи = ?, Дата записи =?, Запись=? WHERE № записи = ?";
                command.Parameters.Add("Заголовок записи", textBox1.Text);
                command.Parameters.Add("Дата записи", textBox2.Text);
                command.Parameters.Add("Запись", textBox3.Text);
                command.Parameters.Add("№ записи", textBox4.Text);
 
                command.ExecuteScalar(); // выполнить команду
 
                ShowDB();
 
                textBox1.Clear();
                textBox2.Clear();
                textBox3.Clear();
                textBox4.Clear();
            }
        }
 
        // изменился текст в поле редактирования
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            // кнопка Добавить становится доступной, если информация введена
            // в поле Имя и в какое-либо из полей Телефон или E-mail
            if ((textBox1.TextLength > 0) &&
                  ((textBox2.TextLength > 0) || (textBox3.TextLength > 0)))
                button1.Enabled = true;
            else
            {
                button1.Enabled = false;
            }
        }

    }
}

Решение задачи: «Ошибка There was an error parsing the query. [ Token line number = 1,Token line offset = 43,Token in error = записи ]»

textual
Листинг программы
 private void button1_Click(object sender, EventArgs e)
        {
 
            SqlCeConnection conn = new SqlCeConnection("Data Source = mydb.sdf; Persist Security Info=False;");
            
            conn.Open();
          
                SqlCeCommand command = conn.CreateCommand();
                command.CommandText = "INSERT INTO Bud (Budget,Food,Clothes,Electronics,Entertaiment,Credits) VALUES (?,?,?,?,?,?)";
 
                       command.Parameters.Add("Budget", textBox1.Text.ToString());
                       command.Parameters.Add("Food", textBox2.Text.ToString());
                       command.Parameters.Add("Clothes", textBox3.Text.ToString());
                       command.Parameters.Add("Electronics", textBox4.Text.ToString());
                       command.Parameters.Add("Entertaiment", textBox5.Text.ToString());
                       command.Parameters.Add("Credits", textBox6.Text.ToString());
            
                        command.ExecuteScalar();
                        conn.Close();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы