これは基本的に私が自分のフォームに使用したものです。接続を確立すると、接続が開き、datagridview1 に store_adj_note_detail_1 のデータが入力されます。
bindingSource を宣言しないことに注意してください...理由もわかりませんが、残りの部分 (グローバル) とローカルで宣言しようとしましたが、両方ともコードが壊れました:/
BindingSource の宣言は、フォームのデザイン ビューで行われます。ツールボックスからフォームの上にドラッグするだけで、FileDialogs や Menustrips のようなアイコンが表示されます。私は個人的に Name プロパティを変更しただけで、イベントを追加しませんでした。
接続を開き、バインディングソースを使用して datagridview と dataTable をリンクし、データベースを更新するために必要なすべての概要を示します。
アクセスデータベースに使用した独自のコードを編集してこのコードを取得しましたが、SQL データベースはまったく同じように機能するように見えますが、エンティティが異なるだけです (OleDb の代わりに sqlDataAdapter など)。
これがあなたに役立つことを願っています!
public partial class FrmDatabaseConnection : Form
{
// Connection, Adapter, DataTable, CommandBuilder, Bindingsource and command
private SqlDataAdapter adap;
private DataTable dataTable;
private SqlCommandBuilder commandBuilder;
private string sqlCommand = "SELECT * FROM store_adj_note_detail_1";
private SqlConnection conDB = new SqlConnection();
//To open connection and fill datagridview1
private void establishConnection()
{
try
{
conDB.ConnectionString = "Data Source=localhost;Initial Catalog=ScratchCardSystem2;Integrated Security=True;pooling=true";
conDB.Open();
// Set adapter, commandbuilder, datatable and bindingsource
adap = new SqlDataAdapter(sqlCommand, conDB.ConnectionString);
commandBuilder = new SqlCommandBuilder(adap);
bindSrc = new BindingSource();
dataTable = new DataTable();
// Fill it!
adap.Fill(dataTable);
dataGridView1.DataSource = bindSrc;
bindSrc.DataSource = dataTable;
}
catch (Exception ex)
{
MessageBox.Show("Unable to Open database, " + ex.Message,);
conDB.Close();
}
}
private bool saveToDatabase()
{
try
{
adap.Update((DataTable)bindSrc.DataSource);
}
catch (Exception ex)
{
MessageBox.Show("Unable to Update database, " + ex.Message);
return false;
}
}
}