Добавление записи в базу данных с помощью 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.Data.SqlClient; namespace lab1 { public partial class Form1 : Form { DataSet ds = new DataSet(); //holding place in memory SqlDataAdapter daParent = new SqlDataAdapter(); SqlDataAdapter daChild = new SqlDataAdapter(); SqlConnection cs = new SqlConnection("Data Source=user-PC\\SQLEXPRESS; Initial Catalog=dede;Integrated Security=TRUE"); BindingSource ParentBS = new BindingSource(); BindingSource ChildBS = new BindingSource(); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { SqlCommand slctParent = new SqlCommand("select * from Developerss", cs); //select statement daParent.SelectCommand = slctParent; // attaching sql command into the select command property of the data adapter Parent daParent.Fill(ds, "Developerss"); //fullfilling the data set, calling the table Parent SqlCommand slctChild = new SqlCommand("select * from Games", cs); daParent.SelectCommand = slctChild; daParent.Fill(ds,"Games"); dgParent.DataSource = ds.Tables["Developerss"]; dgChild.DataSource = ds.Tables["Games"]; dgParent.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dgChild.SelectionMode = DataGridViewSelectionMode.FullRowSelect;//click anywhere in the table we have the whole row selected ParentBS.DataSource = ds.Tables[0]; ChildBS.DataSource = ds.Tables[1]; textId.DataBindings.Add(new Binding("Text",ChildBS,"game_id")); textName.DataBindings.Add(new Binding("Text", ChildBS, "game_name")); textPlatform.DataBindings.Add(new Binding("Text", ChildBS, "game_platform")); textDeveloperId.DataBindings.Add(new Binding("Text", ParentBS, "d_id")); } private void dgParent_SelectionChanged(object sender, EventArgs e) { ds.Tables["Games"].DefaultView.RowFilter = "developer_id = " + dgParent.CurrentRow.Cells["d_id"].Value; //whenever the selection change on the dgparent use the value of the current row that we're on dgChild.DataSource = ds.Tables["Games"]; } private void addBtn_Click(object sender, EventArgs e) { daChild.InsertCommand = new SqlCommand("insert into Games values @id, @name, @platform, @developerId", cs); daChild.InsertCommand.Parameters.Add("@id", SqlDbType.Int).Value = textId.Text; daChild.InsertCommand.Parameters.Add("@name", SqlDbType.VarChar).Value = textName.Text; daChild.InsertCommand.Parameters.Add("@platform", SqlDbType.VarChar).Value = textPlatform.Text; daChild.InsertCommand.Parameters.Add("@developerId", SqlDbType.Int).Value = ds.Tables[0].Rows[ParentBS.Position][0]; cs.Open(); daChild.InsertCommand.ExecuteNonQuery(); cs.Close(); } 

Привет!

У меня проблема с командой insert . Я получаю следующую ошибку:

Неверный синтаксис рядом с 'game_id'.

Да, столбец существует в базе данных. Я получаю ту же ошибку для моей функции обновления, но я не размещал ее здесь, так как считаю, что она должна поступать из одного и того же источника ошибок. У меня есть две сетки данных, одна – родительская, другая – дочерняя. В основном я хочу добавить новые записи в дочернюю таблицу.

Заранее спасибо !

Синтаксис INSERT полностью неправильный – вы должны использовать:

 INSERT INTO dbo.Games(Co1, Col2, ..., ColN) VALUES (@id, @name, @platform, @developerId) 

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

А во-вторых: VALUES должны иметь круглые скобки вокруг списка значений, которые он будет вставлять.

И в следующий раз – сначала просмотрите отличную, свободно доступную документацию SQL Server! Полностью базовые вещи, подобные этому, можно легко найти онлайн – например, подробности о синтаксисе INSERT можно найти здесь, в Technet

Эта документация очень тщательная, она показывает все детали, все варианты, все различные способы ее использования, и в ней также содержится много примеров кода. Пожалуйста, используйте эту документацию, прежде чем задавать такие основные вопросы здесь (используя документацию и поиск все-таки часть разработчика, в конце концов!) – спасибо.

Interesting Posts

Можно ли экспортировать команды «PRINT» в файл через bcp?

Сохранение значений времени в базе данных и получение разницы между двумя временными полями

Хранить столбцы DataTable в SQL Server

Есть ли способ вручную установить @@ ROWCOUNT?

Подключить таблицу к представлению SQL или запросу Access

Назначение последовательных номеров строкам с повторяющимися значениями

Операция обновления на основе выбранного SQL-сервера

Свяжите множество дочерних таблиц с родительской таблицей

Может ли R создавать графики «на лету» для веб-сайта?

SQL Server CTE, используемый с «group by», приводит к неправильному результату

хранимая процедура не возвращает управление коду C #

Как обеспечить, чтобы SQL мог читать все данные тега XML

Можно ли проверить, существует ли столбец в таблице в другой базе данных, динамически

Ошибка выполнения SQL Server CLR "hello world"

Как создать массовый оператор CASE на таблице

Давайте будем гением компьютера.