private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=YUVV-PC\SQLEXPRESS;Initial Catalog=barcode;Integrated Security=True";
con.Open();
//MessageBox.Show("connection open");
SqlDataAdapter ada = new SqlDataAdapter();
//ada.SelectCommand = new SqlCommand("select * from barcode", con);
ada.MissingSchemaAction = MissingSchemaAction.AddWithKey;
ada.InsertCommand = new SqlCommand("INSERT INTO barcode (bcd) " +
"VALUES (@bcd)", con);
ada.InsertCommand.Parameters.Add("@bcd", SqlDbType.NChar, 20,"bcd").Value = textBox1.Text;
ada.SelectCommand = new SqlCommand("select bcd from barcode", con);
DataSet ds = new DataSet();
ada.Fill(ds, "barcode");
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
質問する
821 次
1 に答える
1
次のようにコードを修正するには、2 つのオプションがあります ( の後con.Open()
)。
ada.InsertCommand.Parameters.Add("@bcd", SqlDbType.NChar, 20,"bcd").Value = textBox1.Text;
//add this line
//without it you are never executing your `InsertCommand`.
ada.InsertCommand.ExecuteNonQuery();
ada.SelectCommand = new SqlCommand("select bcd from barcode", con);
...
SqlCommand
または、次のように使用することもできます。
using (var cmd = new SqlCommand("INSERT INTO barcode (bcd) VALUES (@bcd)", con))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@bcd", SqlDbType.NChar, 20,"bcd").Value = textBox1.Text;
cmd.ExecuteNonQuery();
}
SqlDataAdapter ada = new SqlDataAdapter();
//ada.SelectCommand = new SqlCommand("select * from barcode", con);
ada.MissingSchemaAction = MissingSchemaAction.AddWithKey;
ada.SelectCommand = new SqlCommand("select bcd from barcode", con);
DataSet ds = new DataSet();
ada.Fill(ds, "barcode");
dataGridView1.DataSource = ds.Tables[0].DefaultView;
また、すべてのリソースが正しく破棄されるように、インスタンスとインスタンスをusing
囲むステートメントを使用することをお勧めします。SqlConnection
SqlDataAdapter
于 2013-02-10T10:51:33.397 に答える