Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
risen
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 25
1

Ошибка при вводе предмета с пробелом

05.04.2016, 12:51. Просмотров 332. Ответов 2
Метки нет (Все метки)

Когда добавляю предмет с пробелом (Нпр Русский язык) и нажимаю "Принять изменения",то программа не реагирует.
Предмет без пробела успешно изменяется.
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
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.SqlClient;
using System.IO;
 
namespace RasUch
{
    public partial class Form4 : Form
    {
        public Form4(string name, string date)
        {
            InitializeComponent();
            this.name = name;
            this.date = date;
        }
        string name = "";
        string date = "";
        ConnectionStringOpen cso = new ConnectionStringOpen();
 
        private void button1_Click(object sender, EventArgs e)
        {
            Form form = new Form1();
            form.Show();
            this.Close();
        }
 
        string z = "";
        string id = "";
        string ret="";
        SqlDataReader myReader = null;
        string quverty = "";
        List<string> PredmetId = new List<string>();
        private void Form4_Load(object sender, EventArgs e)
        {
            cso.Open();
            SqlConnection conn = new SqlConnection(cso.strConn);
            
            int PID = 0;
            
            conn.Open();
            // Узнаём Id преподавателя
            z =name.Split('\n')[0].ToString();
            try
            {
                quverty = "SELECT * FROM Teacher";
                SqlCommand com = new SqlCommand(quverty, conn);
                myReader = com.ExecuteReader();
                while (myReader.Read())
                {
                    ret=myReader["LastName"]+" "+myReader["Name"].ToString()[0]+"."+
                        myReader["MiddleName"].ToString()[0];
                    if (name.Split('\n')[1] == ret && z == myReader["Zvanie"].ToString())
                    {
                        id = myReader["Id"].ToString();
                        break;
                    }
                }
                myReader.Close();
 
                // Ищем список предметов ??
                quverty = "SELECT * FROM Raspisanie WHERE TeacherId="+id+" AND data='"+date+"."+DateTime.Today.Year.ToString()+"'";
                com = new SqlCommand(quverty, conn);
                myReader = com.ExecuteReader();
                while (myReader.Read())
                {
                    PredmetId.Insert(PID, myReader["PredmetId"].ToString() + /*" " + myReader["Nur"].ToString()+*/ " "+ myReader["Id"].ToString());
                    PID++;
                }
                myReader.Close();
 
                // Выводим список предметов
                for (int i = 0; i < PredmetId.Count; i++)
                {
                    quverty = "SELECT * FROM Predmet WHERE Id="+PredmetId[i].Split(' ')[0].ToString();
                    com = new SqlCommand(quverty, conn);
                    myReader = com.ExecuteReader();
                    while (myReader.Read())
                    {
                        listBox1.Items.Add(/*PredmetId[i].Split(' ')[1].ToString() + " " +*/ myReader["Name"].ToString());
                    }
                    myReader.Close();
                }
 
                // Заполнение
                quverty = "SELECT * FROM Predmet";
                com = new SqlCommand(quverty, conn);
                myReader = com.ExecuteReader();
                while (myReader.Read())
                {
                    comboBox1.Items.Add(myReader["Name"].ToString());
                }
                myReader.Close();
            }
            catch (Exception) { e.ToString(); }
            conn.Close();
            textBox1.Text = name.Split('\n')[0].ToString() + " " + name.Split('\n')[1].ToString();
            textBox2.Text = date;
        }
 
        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            { textBox2.Enabled = true; }
            else { textBox2.Enabled = false; }
        }
        int idList = 0;
        private void listBox1_Click(object sender, EventArgs e)
        {
            //textBox3.Text = listBox1.SelectedItem.ToString().Split(' ')[0].ToString();
            textBox4.Text = listBox1.SelectedItem.ToString().Split('/')[0].ToString();
            idList = listBox1.SelectedIndex;
        }
        
        private void button2_Click(object sender, EventArgs e)
        {
            listBox1.Items.RemoveAt(idList);
            if (comboBox1.Text != "")
            {
                textBox4.Text = comboBox1.Text;
            }
            listBox1.Items.Insert(idList, textBox3.Text + " " + textBox4.Text);
            button3.Enabled = true;
            button2.Enabled = false;
        }
        int IdPred = 0;
        private void button3_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection(cso.strConn);
            conn.Open();
            try
            {
                SqlCommand com;
                quverty = "SELECT * FROM Predmet";
                com = new SqlCommand(quverty, conn);
                myReader = com.ExecuteReader();
                while (myReader.Read())
                {
                    if (listBox1.Items[idList].ToString().Split(' ')[1].ToString() == myReader["Name"].ToString())
                    { IdPred = Convert.ToInt32(myReader["Id"].ToString()); break; }
                }
                myReader.Close();
                quverty = "SELECT * FROM Raspisanie WHERE PredmetId="+PredmetId[idList].ToString().Split(' ')[0].ToString()+
                    " AND TeacherId=" + id.ToString();
                com = new SqlCommand(quverty, conn);
                myReader=com.ExecuteReader();
                int idN = 0;
                string d = date.ToString() + "." + DateTime.Today.Year.ToString();// ДАта выбранного дня
                while (myReader.Read())
                {
                    if ( d== myReader["data"].ToString())
                    { idN = Convert.ToInt32(myReader["Id"].ToString()); break; }
                }
                myReader.Close();
 
               quverty="UPDATE Raspisanie SET PredmetId=@PredmetId, TeacherId=@TeacherId WHERE Id=" + idN.ToString();
                com = new SqlCommand(quverty, conn);
                com.Parameters.Add("@PredmetId", SqlDbType.Int).Value = IdPred;
                com.Parameters.Add("@TeacherId", SqlDbType.Int).Value = id;
                //com.Parameters.Add("@Nur", SqlDbType.Int).Value = listBox1.Items[idList].ToString().Split(' ')[0].ToString();
                com.ExecuteNonQuery();
                MessageBox.Show("Изменения внесены!!");
            }
            catch (Exception) { e.ToString(); }
            conn.Close();
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            int Predmetid = 0;
            SqlConnection conn = new SqlConnection(cso.strConn);
            conn.Open();
            try 
            {
                quverty = "SELECT Id FROM Predmet WHERE Name=@Name";
                SqlCommand com = new SqlCommand(quverty, conn);
                com.Parameters.Add("@Name", SqlDbType.NVarChar).Value = textBox4.Text;
                myReader = com.ExecuteReader();
                while (myReader.Read())
                {
                    Predmetid = Convert.ToInt32(myReader["Id"]);
                }
                myReader.Close();
 
                quverty = "DELETE FROM Raspisanie WHERE PredmetId=@Predmetid AND TeacherId=@id";
                com = new SqlCommand(quverty, conn);
                com.Parameters.Add("@Predmetid", SqlDbType.Int).Value = Predmetid;
                com.Parameters.Add("@id", SqlDbType.Int).Value = Convert.ToInt32(id);
                //com.Parameters.Add("@Nur", SqlDbType.Int).Value = Convert.ToInt32(textBox3.Text);
                com.ExecuteNonQuery();
                textBox3.Text = "";
                textBox4.Text = "";
                // Доделать вывод
                MessageBox.Show("Запись успешно удалена!!");
            }
            catch { }
        }
    }
}
0
Миниатюры
Ошибка при вводе предмета с пробелом  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2016, 12:51
Ответы с готовыми решениями:

Автоматическое форматирование при вводе текста
В общем как производить автоматическое форматирование текста в конструкции например: public...

Не печатается кириллица при вводе с клавиатуры в ActiveX компоненте
Здравствуйте, форумчане. Краткое описание проблемы: 1.Сделал элемент управления ActiveX в...

Фильтрация символов при вводе. Ввод с русской раскладкой.
Мне нужно ввести значение double в поле формы. Я настроил фильтрацию чтобы принимались только цифры...

Как реализовать проверку, при вводе пользователя и пароля, забитых в БД
Имеется БД в аксес с одной таблице (поля пользователь и поле пароль). На форме в шарпе, есть...

Запрос SPQuery. При вводе символов в TextBox должно происходить заполнение DGV
Постановка задачи Есть web part - update panel, на ней текстбокс и spgridview. обрабатываю событие...

2
kolorotur
Эксперт .NET
11081 / 9031 / 2275
Регистрация: 17.09.2011
Сообщений: 15,558
Завершенные тесты: 1
05.04.2016, 19:24 2
Цитата Сообщение от risen Посмотреть сообщение
C#
1
"SELECT * FROM Predmet WHERE Id="+PredmetId[i].Split(' ')[0].ToString();
Получается такой запрос:
SQL
1
SELECT * FROM Predmet WHERE Id=Русский
"язык" отваливается из-за разбиения по пробелу.
0
risen
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 25
05.04.2016, 20:31  [ТС] 3
Как правильно запрос написать?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2016, 20:31

При вводе с клавиатуры в wndProc приходят непонятные коды клавиш(работа с несколькими клавиатурами)
Задача стоит определять ввод со сканера штрих кодов, который определяется и работает как...

Как при вводе в одну таблицу данных изменить значение в другой таблице в строке с тем же номером?
Есть БД в access, состоящая из 6 таблиц. Задача - при вводе в одну таблицу данных изменить значение...

В программе выполняется сразу всё при вводе строки с пробелом
Здравствуйте, решил написать программу для создания тестов. Я новичок. Когда запускаю программу и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru