0
このコードは、プログラムを実行するとフォームを正常に読み取り、更新しますが、DataGridviewの値を編集して更新をクリックすると更新されません。
私はビデオチュートリアルシリーズに従っています。このコードは、ビデオを使ってテーブルを更新しています。C#:SqlCe質問、データベースに更新できませんが、データを読み取ることができます
質問:DataGridviewの値を編集すると、なぜ更新されませんか?
using System.Data.SqlServerCe;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
private SqlCeConnection conn; // Our Connection
private SqlCeDataAdapter da; // Data Adapter
private DataSet ds; // Dataset
private string sTable = "authors"; // Table Name
public Form1()
{
InitializeComponent();
InitData(); // Get the Data
dataGridView1.DataSource = ds;
dataGridView1.DataMember = sTable;
}
public void InitData()
{
try
{
// Instantiate the Connection
conn = new SqlCeConnection("Data Source=|DataDirectory|\\Database1.sdf");
// Instantiate a new DataSet
ds = new DataSet();
// init SQLDataAdapter with select command and connection
da = new SqlCeDataAdapter("SELECT id, name, email FROM " + sTable, conn);
// Automatically generates insert, update and delete commands
SqlCeCommandBuilder cmdBldr = new SqlCeCommandBuilder(da);
// Fill in the dataset view
da.Fill(ds, sTable);
}
catch (Exception excep)
{
MessageBox.Show("Exception: " + excep.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
da.Update(ds, sTable);
}
catch (Exception excep)
{
MessageBox.Show(excep.Message);
}
}
}
}
プログラムはコンパイルされますが、updateコマンドはbutton1のクリックでデータベースを更新するようには機能していません。
更新コマンドが初期化されているかどうかを確認して確認します。それは可能ですか? – webtrifusion
どのようにすればいいですか?自分で更新コマンドを初期化しないでください。 – Anil
da.Update行のコードにブレークポイントを置き、dsにカーソルを置き、期待しているアップデートを確認してください。私は、データセットがインタフェースで行われた変更を認識するとは思わない。 – webtrifusion