Здравствуйте, я прочитал несколько статей, но не получаю ответа, который я ищу. Я хочу сделать два раза. 1. Настройте datagridview из запроса NOT таблицы непосредственно с помощью кнопки, которая выполняет запрос для заполнения. 2. Измените значения в datagrid, чтобы произнести BACK в базе данных, чтобы внести изменения. Проблема, с которой я сталкиваюсь, - это пример, который я нахожу в предположении, что у вас есть универсум STATIC, который не может измениться. Я уже знал часть населения, но мне любопытно, как вы используете datagridview для подключения к базе данных и говорите: «Сделайте то, что я покажу в этот момент, как изменения, и сохраните их в базе данных, из которой они первоначально пришли».Заполнение базы данных SQL в результате изменений Windows Forms DataGridView
Код Я немного следил: http://www.switchonthecode.com/tutorials/csharp-tutorial-binding-a-datagridview-to-a-database Они использовали метод доступа, и я использую SQL, но это не имеет большого значения.
EG: Я могу установить элемент dataAdapter в одном экземпляре процесса, но другой экземпляр НЕ знает об этом. Я предполагаю, что что-то можно сделать, поскольку вы можете сделать это довольно легко с перетаскиванием с наборами данных. Возможно, я тоже ошибаюсь и должен устанавливать некоторые элементы статические и некоторые динамические. Все, что мне действительно нужно, это доказать, что я могу изменить значения под VALUE на что-то другое и передать их обратно в базу данных с источником привязки. Однако источник привязки неизвестен в другом экземпляре, и некоторые вещи статически встречаются с ошибкой, как я их определял. Любая помощь очень ценится, спасибо!
PRE SET UP:
Создать 'Test' База данных с одной таблицы определяется как:
Создать таблицу Test (ID INT Идентичность, VALUE VARCHAR (2)) вставки в тесте значения ('A'), ('B'), ('C')
Создание приложения Windows Form в Visual Studio 2010 (должно работать в 2008 или ранее, поскольку я не считаю, что я делаю что-либо явно .NET 4.0). Форма Windows должна иметь две кнопки: a. 'btnPopulate' b. 'BtnUpdate'; текстовое поле: 'txtquery', заполненный текстом: 'select * from Test'; и datagridview: «gridview».
Фактический используемый код позади формы:
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 DataGridTestDBUpdater
{
public partial class TestDataGrid : Form
{
public string con = "Integrated Security=SSPI;Persist Security Info=False;Data Source =(local);Initial Catalog=Test";
public TestDataGrid()
{
InitializeComponent();
}
private void btnPopulate_Click(object sender, EventArgs e)
{
string query = txtquery.Text;
using (SqlConnection cn = new SqlConnection(con))
{
using (SqlCommand cmd = new SqlCommand(query, cn))
{
using (SqlDataAdapter adapter = new SqlDataAdapter())
{
using (DataTable table = new DataTable())
{
cn.Open();
using (BindingSource bs = new BindingSource())
{
adapter.SelectCommand = cmd;
adapter.Fill(table);
bs.DataSource = table;
gridview.DataSource = bs.DataSource;
}
cn.Close();
}
}
}
}
}
private void btnUpdate_Click(object sender, EventArgs e)
{
using (BindingSource bs = new BindingSource())
{
bs.DataSource = gridview.DataSource;
using (DataTable table = new DataTable())
{
using(SqlDataAdapter adpt = new SqlDataAdapter())
{
bs.DataSource = gridview.DataSource;
/// ALL OF MY WORK IS FAILING FROM HERE ON ///
/// WANT TO GET UPDATE TO WORK HERE: ///
///
///adpt.Update(bs.DataSource);
}
}
}
}
}
}
Хммм, что странно то, потому что вы можете автоматически синхронизировать таблицу, когда вы просто идти (предполагая, что Visual Studio 2010 Professional по умолчанию) 1. Меню данных> Добавить новые данные 2. База данных 3. DataSet 4. Конфигурация подключения к DB. 5. Сохраните настройки. 6. Выберите объекты для использования (таблицы, функции, procs) и т. Д. 7. Сохраните настройки. 8. Выберите «Настройки» в данный момент (Источники данных) Shift + Alt + D 9. Параметры перетаскивания. 10. Обычно это приведет к появлению панели меню с иконкой сохранения, которая сообщит базе данных, когда вы нажмете значок сохранения, что нужно сохранить. Я просто хочу это сделать, но с набором данных не стол. - djangojazz – djangojazz