Member 12932743 Ответов: 2

Текст не сохраняется в моей базе данных?


Каждый раз, когда я нажимаю на кнопку, он говорит:

Необработанное исключение типа "System.Data.SqlClient. SqlException" произошло в System.Data.dll
Дополнительная информация: неправильный синтаксис рядом с ключевым словом "база данных".

Неправильный синтаксис рядом с ключевым словом "SET".

Не могли бы вы мне помочь?

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

private void button1_Click(object sender, EventArgs e)
{
  con = new SqlConnection(@"Data Source=        (LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\djino_5yu1pcr\Documents\DataSet.mdf;I  ntegrated Security=True;Connect Timeout=30");
  con.Open();
  cmd = new SqlCommand("Update DataBase Set (Serial,Name) VALUES (@Serial,@Name)", con);
  cmd.Parameters.Add("@Serial", txtSerial.Text);
  cmd.Parameters.Add("@Name", txtName.Text);
  cmd.ExecuteNonQuery();
}

NotPolitcallyCorrect

http://www.w3schools.com/sql/sql_update.asp

Member 12932743

Вы можете использовать Insert и в?

NotPolitcallyCorrect

А вы пробовали?

2 Ответов

Рейтинг:
7

PeejayAdams

Предполагая, что вы пытаетесь обновить таблицу под названием База данных, возникают две проблемы:

1) синтаксис вашей команды обновления неверен (см. ссылку, предоставленную NPC в комментариях).

2) База данных-это зарезервированное слово в SQL. Можно использовать зарезервированные слова в качестве имен объектов, но вам нужно будет избегать их с помощью квадратных скобок, когда вы ссылаетесь на них.

Таким образом, ваш SQL должен выглядеть следующим образом:

UPDATE [DataBase] SET Serial = @Serial, Name = @Name


Обратите внимание, что это обновит каждую строку в таблице, так как там нет предложения WHERE.


Рейтинг:
0

David_Wimbley

Вы сделали утверждение UPSERT (которое не является вещью, которая существует). Ваше заявление об обновлении wrong...it похоже, вы перепутали форматирование INSERT и UPDATE. Он должен быть отформатирован следующим образом

UPDATE Database SET Serial = @Serial, Name = @Name;


Так что это будет
UPDATE <TableName> SET <ColumnName> = <ColumnValue>,<ColumnName> = <ColumnValue>


или для обновления одного столбца

UPDATE <TableName> SET <ColumnName> = <ColumnValue>


Member 12932743

Я попробовал метод insert, но он сказал дополнительную информацию: неправильный синтаксис рядом с ключевым словом "база данных".

David_Wimbley

Это прекрасно, но, основываясь на примере кода, который вы предоставили в своем вопросе, способ форматирования этого обновления не является правильным синтаксисом. Мой ответ дает вам правильный синтаксис.

Кроме того, чтобы быть ясным, вы не можете обновить базу данных, вы должны указать таблицу в базе данных для обновления.

Поэтому предположим, что вы используете SQL Server, если у вас есть база данных под названием Company и таблица под названием Employees...если вы пытаетесь обновить таблицу Employees, вы не можете этого сделать

UPDATE Company SET Name = 'David' WHERE Id = 1
вы должны указать такую таблицу, как
UPDATE Employees SET Name = 'David' WHERE id = 1
Вы можете указать базу данных, если хотите, но это должно быть указано в строке подключения.