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

Update - изменение одного поля

25.03.2012, 08:02. Просмотров 1541. Ответов 18
Метки нет (Все метки)

не получается провести изменения не знаю в чем ошибка
есть таблица "work" в ней во втором столбце есть имя "егор" его надо заменить на "сергей"
но в запросе подчеркивает название таблицы "work" и слово "set"

vb.net
1
Update work set  name='Егор' where work.workid=1 and work.name='Сергей';

кусок программы:

vb.net
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
 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim cnn As New SqlClient.SqlConnection()
        Dim cmd As New SqlClient.SqlCommand()
        Dim da As New SqlClient.SqlDataAdapter()
        Dim ds As New DataSet()
 
        Try
            'ниже строка отлично работает
            ' cnn.ConnectionString = " server=(local); data source=СЕРГЕЙ-ПК\SQLEXPRESS;Initial Catalog=master;Integrated Security=True"
 
            'и эта строка тоже работает
            'cnn.ConnectionString = "data source=СЕРГЕЙ-ПК\SQLEXPRESS;Integrated Security=True"
            cnn.ConnectionString = "Data Source=СЕРГЕЙ-ПК\SQLEXPRESS;Initial Catalog=master;Integrated Security=True"
            cnn.Open()
            cmd = cnn.CreateCommand
            cmd.CommandText = "select * from Work"
            da.SelectCommand = cmd
            da.Fill(ds, "Work")
            ' Update work  set name ='Сургей' where  work.Name='егор';     ---не работает почему
              Update work set  name='егор' where work.workid=1 and work.name='Сергей';
            cnn.Close()
            '--- "dgMain" -- это "DataGridView1" - только переименованый
            dgMain.DataSource = ds
            dgMain.DataMember = "work"
 
            MsgBox("Связь прошла!!!!!")
 
        Catch ex As Exception
            MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OkOnly, "button4")
        End Try
    End Sub
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2012, 08:02
Ответы с готовыми решениями:

Изменение одного поля в базе данных
Всем доброго времени суток. Работаю в Visual Studio 2015 Enterprise в Windows...

Данные в combobox одного поля, заменить значением другого поля при сохранении в файл базы
Здравствуйте! суть вопроса - беру данные из файла базы ssldb, таблица sites,...

Изменение данных в БД. Запрос UPDATE
Здравствуйте! Неправильный синтаксис около ключевого слова "AS" SqlCommand...

Update поля DateTime, ошибка неверного синтаксиса
Здравствуйте! Я хочу обновить поля DateTime в моей таблице но выдает ошибку про...

Ошибка SqlDataAdapter.Update при использовании метода на добавление более одного раза
Ниже описан метод добавления работника, если добавляю одного, то все норм, но...

18
TARAS87
38 / 37 / 2
Регистрация: 03.06.2010
Сообщений: 170
25.03.2012, 11:51 2
Оформите код тегами, а то читать не удобно. Что значит не работает? Вывыливается ошибка? Или просто изменение не проходит?
Вот эту строку Вы так и пишете?
C#
1
' Update work set name ='Сургей' where work.Name='егор';
0
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 994
25.03.2012, 12:33 3
Работа с подключенным уровнем ADO .NET в C#
п. 2.6.
0
Moerte
2 / 2 / 0
Регистрация: 20.06.2011
Сообщений: 143
25.03.2012, 13:10  [ТС] 4
да так и пишу запрос но в запросе подчеркивает название таблицы "work" и слово "set"

Добавлено через 56 секунд
при нажатии на кнопку выводит таблицу но без изменений
0
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 994
25.03.2012, 13:12 5
Покажите текст запроса? Тока пользуйтесь пожалуйста тегами форматирования (SQL, TSQL).
0
Moerte
2 / 2 / 0
Регистрация: 20.06.2011
Сообщений: 143
25.03.2012, 13:14  [ТС] 6
Update work set name='сергей1' where work.workid=1 and work.name='егор';
0
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 994
25.03.2012, 13:19 7
T-SQL
1
2
3
Update work 
set name='сергей1' 
where work.workid=1 and work.name='егор'
Уверены, что указали правильное название таблицы? А где подчеркивает, в чем запрос пишете?

Добавлено через 1 минуту
видно WORK ключевое слово))
возьмите его везде в квадратные скобик - [] (пример [Work])
T-SQL
1
2
3
UPDATE [WORK] 
SET name='сергей1' 
WHERE workid=1 and name='егор'
0
Moerte
2 / 2 / 0
Регистрация: 20.06.2011
Сообщений: 143
25.03.2012, 13:20  [ТС] 8
работаю в Studio 2010 на vb.net а подчеркивает WORK и слово SET
0
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 994
25.03.2012, 13:24 9
T-SQL
1
2
3
UPDATE [WORK] 
SET name='сергей1' 
WHERE workid=1 and name='егор'
попробуйте!

Добавлено через 2 минуты
Да точно! есть такое ключевое слово...
0
Moerte
2 / 2 / 0
Регистрация: 20.06.2011
Сообщений: 143
25.03.2012, 13:27  [ТС] 10
всеравно подчеркивает а может быть что не поставлен перичный ключ?
0
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 994
25.03.2012, 13:29 11
Неа! если таблица создана, то все должно быть ок! точно с нужно базой работаете?

Добавлено через 1 минуту
Если навести на подчеркнутое слово, то можно прочитать, что там написано.. ну или нажать Execute, чтобы в мессагу записался текс ошибки и вы ее мне показали.
0
Moerte
2 / 2 / 0
Регистрация: 20.06.2011
Сообщений: 143
25.03.2012, 13:33  [ТС] 12
при нажатии на кнопку таблица выводится в DataGrid но данные не изменяются

Добавлено через 2 минуты
сейчас не показывает только подчеркивает а при наведении на это слово пишет что в справке нет данных но раньше выводил что-то вроде "Comm')',.............."
0
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 994
25.03.2012, 13:40 13
Так а запрос пробовали выполнить? Или вы не с редактором SQL зпросов VS 2010 работаете?
0
Moerte
2 / 2 / 0
Регистрация: 20.06.2011
Сообщений: 143
25.03.2012, 13:42  [ТС] 14
я так понимаю что в редакторе запросов все проходит отлично а вот когда в текст кнопки тоже самое набираю там ругается
0
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 994
25.03.2012, 13:49 15
покажите весь код обработчика событий.
0
Moerte
2 / 2 / 0
Регистрация: 20.06.2011
Сообщений: 143
25.03.2012, 13:51  [ТС] 16
vb.net
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
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
 
 
 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim cnn As New SqlClient.SqlConnection()
        Dim cmd As New SqlClient.SqlCommand()
        Dim da As New SqlClient.SqlDataAdapter()
        Dim ds As New DataSet()
 
        Try
            'ниже строка отлично работает
            ' cnn.ConnectionString = " server=(local); data source=СЕРГЕЙ-ПК\SQLEXPRESS;Initial Catalog=master;Integrated Security=True"
 
            'и эта строка тоже работает
            'cnn.ConnectionString = "data source=СЕРГЕЙ-ПК\SQLEXPRESS;Integrated Security=True"
            cnn.ConnectionString = "Data Source=СЕРГЕЙ-ПК\SQLEXPRESS;Initial Catalog=master;Integrated Security=True"
            cnn.Open()
            cmd = cnn.CreateCommand
            cmd.CommandText = "select * from Work"
            da.SelectCommand = cmd
            da.Fill(ds, "Work")
            ' Update work  set name ='Сургей' where  work.Name='егор';     ---не работает почему
            'Update (work) set  name='сергей1' where work.workid=1 and work.name='егор';
            Update [WORK] SET name='сергей1' WHERE workid=1 and name='егор'
 
            cnn.Close()
            '--- "dgMain" -- это "DataGridView1" - только переименованый
            dgMain.DataSource = ds
            dgMain.DataMember = "work"
 
            MsgBox("Связь прошла!!!!!")
 
        Catch ex As Exception
            MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OkOnly, "button4")
        End Try
    End Sub
0
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 994
25.03.2012, 13:56 17
Moerte! Теги, читать же невозомжно!
вот это висит в воздухе:
vb.net
1
Update [WORK] SET name='сергей1' WHERE workid=1 and name='егор'
(это должно быть реализовано в виде команды как и для select)
и не понятно что вы хотите сделать!!! хотите по одной кнопке и грид заполнить и изменения внести?
0
Moerte
2 / 2 / 0
Регистрация: 20.06.2011
Сообщений: 143
25.03.2012, 14:00  [ТС] 18
нет просто в другой кнопке ругался и я решил его сюда впихнуть посмотреть но не помогает
если можете подскажите я не очень понимаю что значит как для селекта
0
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 994
25.03.2012, 14:19 19
Вот пример с msdn как правильно выполнить запрос к бд.
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    
Dim queryString As String = _
        "SELECT OrderID, CustomerID FROM dbo.Orders;"
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()
        Dim reader As SqlDataReader = command.ExecuteReader()
        Try
            While reader.Read()
                Console.WriteLine(String.Format("{0}, {1}", _
                    reader(0), reader(1)))
            End While
        Finally
            ' Always call Close when done reading.
            reader.Close()
        End Try
    End Using
Переделаем его для ваших целей:
vb.net
1
2
3
4
5
6
7
8
    
Dim queryString As String = _
        "Update [WORK] SET name='сергей1' WHERE workid=1 and name='егор'"
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()
        Dim reader As SqlDataReader = command.ExecuteNonQuery()
    End Using
не уверен что заработает с первого раза, потому что не на чем отладить и в VB.net я не так силен как c#. Но суть именно та!
0
25.03.2012, 14:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2012, 14:19

Запрос update - пишет "Отсутствует значение для одного или нескольких требуемых параметров!" (С# Access)
Не могу разобраться с этим запросом. Пишет "Отсутствует значение для одного или...

Изменение поля в базе SQL
когда пытаюсь изменить поле в таблице пишет вот такую ошибку Дополнительные...

Изменение значения поля самописным атрибутом
Есть свойство public string Trance {get;set;} Можно ли с помощью атрибута...


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

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

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