Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 2
1

Подскажите, почему выдает "Ошибка в синтаксисе UPDATE"?

08.04.2018, 20:13. Показов 940. Ответов 5

Author24 — интернет-сервис помощи студентам
Подскажите, почему выдает "Ошибка в синтаксисе UPDATE"


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
private void button6_Click(object sender, EventArgs e)
        {
            OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database.mdb");
            OleDbCommand cmd = new OleDbCommand();
            cmd.CommandType = CommandType.Text;
            var na = textBox4.Text;
            var em = textBox5.Text;
            cmd.CommandText = "insert into Users ([Name],[E-mail]) values (?,?)";
            cmd.Parameters.AddWithValue("@Name", na);
            cmd.Parameters.AddWithValue("@E-mail", em);
            cmd.Connection = conn;
            conn.Open();
            cmd.ExecuteNonQuery();
            groupBox2.Enabled = false;
            groupBox2.Visible = false;
            System.Windows.Forms.MessageBox.Show("An Item has been successfully added", "Caption", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
            conn.Close();
 
            OleDbConnection conn1 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Database.mdb"); 
            OleDbCommand cmd1 = new OleDbCommand(); 
            cmd1.CommandType = CommandType.Text;
            for (int i = 0; i < dataGridView2.Rows.Count - 1; i++) 
            { 
                cmd1.CommandText = "update Users set([Name],[E-mail]) where values (?,?)"; 
                cmd1.Parameters.AddWithValue("@Name", dataGridView2.Rows[i].Cells["Name"].Value); 
                cmd1.Parameters.AddWithValue("@E-mail", dataGridView2.Rows[i].Cells["E-mail"].Value); 
                cmd1.Parameters.AddWithValue("@var", dataGridView2.Rows[i].Cells[0].Value);
                cmd1.CommandText = "UPDATE Users SET Name=@Name, E-mail=@E-mail WHERE ID=@var";
 
                cmd1.Connection = conn1;
                conn1.Open();
                cmd1.ExecuteNonQuery();
 
                cmd1.Parameters.Clear();
                conn1.Close();
            }
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2018, 20:13
Ответы с готовыми решениями:

Ошибка в синтаксисе в UPDATE
Выводит следующую ошибку &quot;You have an error in your SQL syntax; check the manual that corresponds...

Ошибка в синтаксисе функции UPDATE
Ошибка в синтаксисе. При передаче данных не видит id

почему то выдает ошибку, хотя делал по книжке, подскажите пожалуйста в чем ошибка
почему то выдает ошибку, хотя делал по книжке решение системы линейных алгебраических уравнений...

Подскажите где ошибка в синтаксисе?
Здравствуйте. помогите решить проблему, создаю функции в postgreSQL но не получается, где ошибка в...

Выдает ошибку. "У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует вашей в
Выдает ошибку. &quot;У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое...

5
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
08.04.2018, 21:50 2
24 строка - бредятина, 28 вроде норм, но перенеси добавление параметров под неё, заодно удали бред на 24 и попробуй
0
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 2
09.04.2018, 06:09  [ТС] 3
Изменил, всё по-прежнему

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
OleDbConnection conn1 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Database.mdb"); 
            OleDbCommand cmd1 = new OleDbCommand(); 
            cmd1.CommandType = CommandType.Text;
            for (int i = 0; i < dataGridView2.Rows.Count - 1; i++) 
            {
                cmd1.CommandText = "UPDATE Users SET Name=@Name, E-mail=@E-mail WHERE ID=@var";
                cmd1.Parameters.AddWithValue("@Name", dataGridView2.Rows[i].Cells["Name"].Value.ToString());
                cmd1.Parameters.AddWithValue("@E-mail", dataGridView2.Rows[i].Cells["E-mail"].Value.ToString());
                cmd1.Parameters.AddWithValue("@var", dataGridView2.Rows[i].Cells[0].Value);
 
                cmd1.Connection = conn1;
                conn1.Open();
                cmd1.ExecuteNonQuery();
 
                cmd1.Parameters.Clear();
                conn1.Close();
            }
0
54 / 48 / 31
Регистрация: 14.04.2015
Сообщений: 273
09.04.2018, 08:39 4
IonShive, использую такую функцию, данные через DGV можно передать так:

C#
1
            string fulladdress = Convert.ToString(autoDGV[2, autoDGV.CurrentRow.Index].Value.ToString());

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public void updateHouse(string idlabel, string fulladdress)
        {
            using (connect = new FbConnection(strConnect))
            {
                try
                {
                    command = new FbCommand("UPDATE domov_cht_ob SET FULLADDRESS = '" + fulladdress + "' WHERE UN_N = " + idlabel, connect);
                    connect.Open();
                    command.ExecuteNonQuery();
                    if (command.ExecuteNonQuery() == 1)
                    {
                        MessageBox.Show("Обновление выполнено", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    connect.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
Добавлено через 6 минут
FB поменяй на OleDb и гуд, что то забыл поменять =)

Добавлено через 16 минут
а еще нашел особенность в OleDB возьми название таблицы и всех колонок в квадратные скобки ! [] когда писал программу на OleDB была это очень большая проблема в синтаксисе UPDATE, INSERT, DELET, уже все пересмотрел запросы на стороне сервера работаю правильно, через программу не хочет, как то увидел что кто то в квадратные скобки берет, по пробывал и сработало..
1
1144 / 873 / 506
Регистрация: 09.04.2014
Сообщений: 2,055
09.04.2018, 11:15 5
Цитата Сообщение от IonShive Посмотреть сообщение
Изменил, всё по-прежнему
C#
1
2
3
4
cmd1.CommandText = "UPDATE Users SET Name=@Name, [E-mail]=@Email WHERE ID=@var";
cmd1.Parameters.AddWithValue("@Name", dataGridView2.Rows[i].Cells["Name"].Value.ToString());
cmd1.Parameters.AddWithValue("@Email", dataGridView2.Rows[i].Cells["E-mail"].Value.ToString());
cmd1.Parameters.AddWithValue("@var", dataGridView2.Rows[i].Cells[0].Value);
1
54 / 48 / 31
Регистрация: 14.04.2015
Сообщений: 273
10.04.2018, 00:48 6
nedel,
C#
1
2
3
4
cmd1.CommandText = "UPDATE [Users] SET [Name]=@Name, [E-mail]=@Email WHERE ID=@var";
cmd1.Parameters.AddWithValue("@Name", dataGridView2.Rows[i].Cells["Name"].Value.ToString());
cmd1.Parameters.AddWithValue("@Email", dataGridView2.Rows[i].Cells["E-mail"].Value.ToString());
cmd1.Parameters.AddWithValue("@var", dataGridView2.Rows[i].Cells[0].Value);

что бы прям на верняка =)
0
10.04.2018, 00:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2018, 00:48
Помогаю со студенческими работами здесь

Разобраться в синтаксисе update с вложениями
Помогите, пожалуйста, написать апдейт есть временная таблица (подгружается) необходимо из нее...

Препод говорит где - то ошибка в синтаксисе. Сам код взят из "жефри Рихтер - Создание эффективных WIN32 приложений" Пожалуйста, подскажите где ошибка!
// получаем код ошибки DWORD dwError = GetDlgItemInt(hwnd, IDC_ERRORCODE, NULL, FALSE); HLOCAL...

Подскажите почему выдает ошибку
Я птылся запустить приложения написаное для андройда 3.0, изменив в манифесте версию и закоментив...

Подскажите, почему выдаёт ошибку
второй день голову ломаю ....

Подскажите почему выдает ошибку?
#include &lt;iostream&gt; using namespace std; int main(){ int a,b,c,x1,x2,dx; cout&lt;&lt; &quot;Inter a=&quot;;...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru