現在、このテスト用 Windows フォーム アプリケーションに問題があります。コンストラクターは、datagridview にデータを追加するために機能します。ただし、ボタンをクリックすると、SQL コマンドを実行するための何も追加できず、エラー ExecuteNonQuery: Connection プロパティが初期化されていません。以下は私のコードです。同様の問題に関する質問を見つけましたが、コード内の複数のポイントでデータベースを呼び出すことでこの問題に対処していません。
namespace TestApplication
{
public partial class Form1 : Form
{
public SqlDatabase db;
string myConnectionString = ConfigurationManager.ConnectionStrings["DF06Data_Tools"].ToString();
public Form1()
{
InitializeComponent();
db = new SqlDatabase(myConnectionString);
UpdateGrid();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public void UpdateGrid()
{
string sql = "SELECT * FROM [Data_Tools].[dbo].[TestTable]";
DbCommand cmd = db.GetSqlStringCommand(sql);
DataSet TableDataSet = db.ExecuteDataSet(cmd);
dataGridView1.DataSource = TableDataSet.Tables[0];
cmd.Dispose();
}
private void button1_Click(object sender, EventArgs e)
{
string sql = "INSERT INTO [Data_Tools].[dbo].[TESTTABLE] (name, id) VALUES('bob', '8')";
DbCommand cmd = db.GetSqlStringCommand(sql);
cmd.ExecuteNonQuery();
UpdateGrid();
}
}
}