我在C#WinForm上有一个dataGridView,textBoxFirstName,buttonSelect和buttonUpdate。我的问题末尾有代码。
当我单击buttonSelect按钮时,选择结果会毫无问题地进入dataGridView和textBoxFirstName。当我从dataGridView中选择不同的记录时,textBoxFirstName也会自动更新。
当我从dataGridView更改“FirstName”字段并单击buttonUpdate时,FirstName字段将正确保存到数据库。
但是当我从textBoxFirstName更改“FirstName”时,单击buttonUpdate时数据不会保存到数据库中。
如果从textBoxFirstName进行更改并单击buttonUpdate,如何将FirstName字段保存到数据库?
谢谢。
public partial class Form1 : Form
{
private const string connectionString = "Server=localhost;Database=AdventureWorks2008R2;Trusted_Connection=True";
private SqlConnection con;
private SqlDataAdapter dataAdapter;
public Form1()
{
InitializeComponent();
con = new SqlConnection(connectionString);
}
private void FillGrid(string sqlCommand)
{
dataAdapter = new SqlDataAdapter(sqlCommand, con);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
DataTable dataTable = new DataTable();
dataAdapter.Fill(dataTable);
dataGridView.DataSource = dataTable;
textBoxFirstName.DataBindings.Clear();
textBoxFirstName.DataBindings.Add("Text", dataTable, "FirstName");
}
private void buttonSelect_Click(object sender, EventArgs e)
{
FillGrid("SELECT TOP 100 * FROM Person.Person");
}
private void buttonUpdate_Click(object sender, EventArgs e)
{
dataAdapter.Update((DataTable)dataGridView.DataSource);
}
}
答案 0 :(得分:0)
那是因为在buttonUpdate_Click
内你用网格的数据源更新dataAdapter
。因此,网格中的任何内容都存储在数据库中,但文本框中的文本却没有。您还需要使用textBoxFirstName
的数据源更新数据适配器。希望它有所帮助。
答案 1 :(得分:0)
有人告诉你,当你点击按钮更新时你没有更新文本框数据你只是更新gridviews数据..现在试试这个。
private void buttonUpdate_Click(object sender, EventArgs e)
{
dataAdapter.Update((DataTable)dataGridView.DataSource);
textBoxFirstName.DataBindings.Add("Text", dataTable, "FirstName");
}