로컬 데이터베이스 'database1.sdf'와 일부 값이있는 'Employees'테이블이 포함 된 코드가 있습니다. Datagridview.Datasource 속성을 사용하여 데이터베이스의 모든 행을 datagridview에 추가하고 있습니다. 모든 행이 테이블에서 가져 오는 중입니다! 벌금! 데이터베이스에서 업데이트하지 않는 datagridview에서 열 값을 업데이트하려고 할 때. 행을 삭제하고 새 행을 추가 할 때도 동일한 문제가 발생합니다. 프로그램을 실행할 때 예외가 없습니다.C# SqlCeDataAdapter는 DataGridview에서 값을 변경 한 후 Adapter.Update()를 호출 할 때 데이터베이스의 값을 업데이트하지 않습니다.
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.SqlServerCe;
namespace demoDatabaseOperations
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public SqlCeConnection con = new SqlCeConnection("Data source=Database1.sdf");
public DataTable dt = new DataTable();
public SqlCeDataAdapter adptr;
public SqlCeCommandBuilder cmdBuilder;
private void Form1_Load(object sender, EventArgs e)
{
con.Open();
if (con.State == ConnectionState.Open)
{
adptr = new SqlCeDataAdapter("select * from employees", con);
cmdBuilder = new SqlCeCommandBuilder(adptr);
adptr.UpdateCommand = cmdBuilder.GetUpdateCommand();
adptr.Fill(dt);
this.dataGridView1.DataSource = dt;
}
}
//Button For Update/delete/insert values to the database
private void button1_Click(object sender, EventArgs e)
{
try
{
adptr.Update(dt);
adptr.Dispose();
}
catch (Exception f) { MessageBox.Show(f.ToString()); }
}
}
}
어느 하나가 이것에 대한 해결책을 가지고 있습니다?
미리 감사드립니다.
adptr에 업데이트 지침이 있습니까? – BugFinder
예를 들어 https://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlcedataadapter.updatecommand(v=vs.100).aspx를 참조하십시오. 코드에서 업데이트 부분을 표시하지 않았습니다. – BugFinder
@BugFinder 우리는 'update tablename set column ...'과 같은 업데이트 정보를 수동으로 생성해야합니다. 또는'adptr.UpdateCommand = cmdBuilder.GetUpdateCommand();'이것은 datagridview에서 컬럼을 변경할 때 업데이트 값을위한 명령어를 자동으로 생성 할 것인가? –