У меня возникли проблемы с пониманием того, что я делаю неправильно здесь. Я смог без проблем получить и заполнить формы с данными из моей базы данных SQL Server. Теперь, когда я пытаюсь записать обратно в базу данных через измененный набор данных, ничего не происходит. По-видимому, команда обновления не работает, и я пытаюсь выяснить, почему. Вот код ниже.Набор данных C# не обновляет таблицу базы данных SQL Server
[Я новичок в C# и SQL, так что я буду очень признателен, если вы можете объяснить, как я 5 :)]
Изменить: Я 100% уверен, что его подсоединенный к БД , извлечение данных и заполнение набора данных.
if (!(String.IsNullOrEmpty(Request.QueryString["newsID"])))
{
SqlDataAdapter UpdateNewsSDA = new SqlDataAdapter("SELECT newsID, newsTitle, newsAuthor, newsDate, shortContent, mainContent FROM news_Table WHERE newsID = @newsID", connectObj);
UpdateNewsSDA.SelectCommand.Parameters.Add("@newsID", SqlDbType.Int).Value = Convert.ToInt32(Request.QueryString["newsID"]);
UpdateNewsSDA.UpdateCommand = new SqlCommand("UPDATE news_table SET [email protected], [email protected], [email protected], [email protected], [email protected] WHERE [email protected]", connectObj);
UpdateNewsSDA.UpdateCommand.Parameters.Add("@newsID", SqlDbType.Int).Value = Convert.ToInt32(Request.QueryString["newsID"]);
UpdateNewsSDA.UpdateCommand.Parameters.Add("@newsTitle", SqlDbType.Text).Value = title_Textbox.Text;
UpdateNewsSDA.UpdateCommand.Parameters.Add("@newsAuthor", SqlDbType.Text).Value = author_Textbox.Text;
UpdateNewsSDA.UpdateCommand.Parameters.Add("@newsDate", SqlDbType.DateTime).Value = Convert.ToDateTime(date_Textbox.Text);
UpdateNewsSDA.UpdateCommand.Parameters.Add("@shortContent", SqlDbType.Text).Value = shortContent_Textbox.Text;
UpdateNewsSDA.UpdateCommand.Parameters.Add("@mainContent", SqlDbType.Text).Value = mainContent_Textbox.Text;
DataSet UpdateNewsDS = new DataSet();
SqlCommandBuilder UpdateNewsCommandBuilder = new SqlCommandBuilder(UpdateNewsSDA);
UpdateNewsSDA.MissingSchemaAction = MissingSchemaAction.AddWithKey;
UpdateNewsSDA.FillSchema(UpdateNewsDS, SchemaType.Source);
UpdateNewsSDA.Fill(UpdateNewsDS);
DataTable UpdateNewsTable = new DataTable();
UpdateNewsTable = UpdateNewsDS.Tables[0];
DataRow CurrentDR;
CurrentDR = UpdateNewsTable.Rows.Find(Convert.ToInt32(Request.QueryString["newsID"]));
CurrentDR.BeginEdit();
CurrentDR["newsAuthor"] = "Ron Weasely";
CurrentDR.AcceptChanges();
CurrentDR.EndEdit();
UpdateNewsSDA.Update(UpdateNewsDS);
}
Редактировать 2: Я обнаружил проблему и весь ее блок ниже!
UpdateNewsSDA.UpdateCommand = new SqlCommand("UPDATE news_table SET [email protected], [email protected], [email protected], [email protected], [email protected] WHERE [email protected]", connectObj);
UpdateNewsSDA.UpdateCommand.Parameters.Add("@newsID", SqlDbType.Int).Value = Convert.ToInt32(Request.QueryString["newsID"]);
UpdateNewsSDA.UpdateCommand.Parameters.Add("@newsTitle", SqlDbType.Text).Value = title_Textbox.Text;
UpdateNewsSDA.UpdateCommand.Parameters.Add("@newsAuthor", SqlDbType.Text).Value = author_Textbox.Text;
UpdateNewsSDA.UpdateCommand.Parameters.Add("@newsDate", SqlDbType.DateTime).Value = Convert.ToDateTime(date_Textbox.Text);
UpdateNewsSDA.UpdateCommand.Parameters.Add("@shortContent", SqlDbType.Text).Value = shortContent_Textbox.Text;
UpdateNewsSDA.UpdateCommand.Parameters.Add("@mainContent", SqlDbType.Text).Value = mainContent_Textbox.Text;
Аппетитно, моя команда обновления работала, но быстро была заменена исходным содержимым текстового поля кодом выше.
Cheers.
Вы должны указать ** Изменить 2 ** в качестве ответа. Добавьте некоторые детали с точной проблемой, и это поможет будущим пользователям. :) – IAbstract