新增資料到db
這次記錄一下將資料寫到db的用法
首先先改良一下上次讀db的部份,
先在程式載入時,在下方讀取目前的資料表
接著按下「新增」button,可依序將欄位新增:
接著再按下「寫入DB」button, 即可將資料寫入db中:
程式碼如下:
using System.Data.SqlClient;
SqlConnection con = new SqlConnection(@"server=.\sqlexpress;pwd=00000000;uid=sa;database=TEST_DB");
private void Form1_Load(object sender, EventArgs e)
{
showinfo(); //先載入目前的商品資料表
//將textbox先反白,不讓輸入
textBox1.Enabled = false;
textBox2.Enabled = false;
textBox3.Enabled = false;
textBox4.Enabled = false;
button1.Enabled = true; //只將「新增」按鈕可使用
button2.Enabled = false; //「寫入db」先停用
}
private void showinfo()
{
using (SqlDataAdapter da = new SqlDataAdapter("select * from product", con)) //建立SqlDataAdapter da
{
DataTable dt = new DataTable(); //建立資料表物件 dt
da.Fill(dt); //將dt 填入 da
DataView dv = new DataView(dt); //建立dataview物件 dv,並將dt寫入 dv
this.dataGridView1.DataSource = dv; //將dv顯示於datagridview1.datasource
}
}
private void button1_Click(object sender, EventArgs e)
{
//按下「新增」後,啟用textbox們
textBox1.Enabled = true;
textBox2.Enabled = true;
textBox3.Enabled = true;
textBox4.Enabled = true;
button1.Enabled = false;
button2.Enabled = true;
}
private void button2_Click(object sender, EventArgs e)
{
//寫入資料庫的部份
//建立StringBuilder物件 SQL_str,其可有效降低操作字串產生大量的無用物件
StringBuilder SQL_str = new StringBuilder();
//把sql insert into的語法放到SQL_str的物件中
SQL_str.Append("insert into product(p_sn,p_name,p_price,p_description)"); //新增sql語法內容,就是insert into
SQL_str.Append("values('" + textBox1.Text.Trim().ToString() + "','" + textBox2.Text.Trim().ToString() + "',"); //太長了,分多段寫
SQL_str.Append("'" + Convert.ToString(textBox3.Text.Trim().ToString()) + "','" + textBox4.Text.Trim().ToString() + "')"); ; //再次追加sql語法
using(SqlCommand cmd = new SqlCommand(SQL_str.ToString(), con))
{
con.Open(); //開啟db連線
cmd.ExecuteNonQuery(); //執行sql命令
MessageBox.Show("新增商品資料成功"); //成功訊息
con.Close(); //關閉db連線
showinfo(); //重新顯示資料表
//關閉textbox
textBox1.Enabled = false;
textBox2.Enabled = false;
textBox3.Enabled = false;
textBox4.Enabled = false;
}
}
沒有留言:
張貼留言