一个非常简单但非常令人沮丧的问题。我已将数据网格绑定到本地数据库,以便在数据集和c#中自学。绑定数据,没问题。自定义填充(和sql选择),没问题。接下来是添加记录。所以,我添加以下代码:
private void bAdd_Click(object sender, EventArgs e)
{
DataRow newRow = abbtestDataSet.Tables["main"].NewRow();
newRow["Name"] = "Simon";
newRow["Age"] = 23;
abbtestDataSet.Tables["main"].Rows.Add(newRow);
}
datagrid更新没有问题,但数据从未实际提交到数据库。我已经搜索过高低的解决方案,或者我可能错过的东西,什么都没有;至少从我所看到的我做的一切都是正确的。
那我错过了什么?毫无疑问,这是非常愚蠢的事情。
答案 0 :(得分:0)
我相信您需要使用DataAdapter
将更新的DataSet
实际发送到数据库。
请查看以下链接以获取更多信息:
http://www.java2s.com/Tutorial/CSharp/0560__ADO.Net/UseDataTabletoinsertaRow.htm
第一个链接的相关样本是:
string ConnectionString ="server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Employee ORDER BY ID", conn);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
// Create a dataset object
DataSet ds = new DataSet("EmployeeSet");
adapter.Fill(ds, "Employee");
// Create a data table object and add a new row
DataTable EmployeeTable = ds.Tables["Employee"];
DataRow row = EmployeeTable.NewRow();
row["FirstName"] = "R";
row["LastName"] = "D";
row["ID"] = "10";
EmployeeTable.Rows.Add(row);
// Update data adapter
adapter.Update(ds, "Employee");