2016年11月21日 星期一

C# MSSQL 寫入資料庫 (insert into)

新增資料到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;
            }
        }




沒有留言:

張貼留言