C#增删改查操作Access数据库之二(数据库的增加)
功能:添加四個TextBox控件,在這四個控件中分別輸入要添加的ID,學號,姓名,年齡,性別信息,單擊Insert按鈕將數據添加到Access數據庫中并通過datagridview顯示添加后的數據庫。此外,設置了學號為主鍵,在添加數據到數據庫前要判斷一下是否已存在這樣的學號。
這里注意一下,我將OleDbConnection conn 設置為全局變量,并且只在show按鈕控件中調用了GetConnection()方法,所以想要連接數據庫只能首先單機show按鈕。
也可以在每一個按鈕控件中調用方法GetConnection()。
1.數據添加方法的實現
? ? ? ? public void DataInsert(TextBox TextBox1, TextBox TextBox2, TextBox TextBox3, TextBox TextBox4, TextBox TextBox5, OleDbConnection conn)
? ? ? ? {?
? ? ? ? ? ? if (CheckSameName(TextBox2)) ?//estimate whether there is same record
? ? ? ? ? ? {
? ? ? ? ? ? ? ? MessageBox.Show("不允許填寫相同記錄");
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ? try
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? string sql = "insert into Student values ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "')";
? ? ? ? ? ? ? ? ? ? OleDbCommand com = new OleDbCommand(sql, conn);
? ? ? ? ? ? ? ? ? ? // execute
? ? ? ? ? ? ? ? ? ? com.ExecuteNonQuery();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? catch (Exception ex)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? MessageBox.Show(ex.Message.ToString());
? ? ? ? ? ? ? ? }
?
? ? ? ? ? ? }
?
? ? ? ? }
這里將TextBox中輸入的數據作為參數傳遞給sql語句有兩種可行的方法,這兩種我都嘗試過了。如果有人知道哪種更優些,可以給我留言探討。
第一種:
? ? ? ? ? ? ? ? ? ? string sqlstr = "insert into Student (ID,[學號],[姓名],[年齡],[性別]) values(@ID,@StuNo,@StuName,@Age,@Gender)";
? ? ? ? ? ? ? ? ? ? OleDbCommand com = new OleDbCommand(sqlstr, conn);
? ? ? ? ? ? ? ? ? ? //add parameters and assign values
? ? ? ? ? ? ? ? ? ? com.Parameters.AddWithValue("@ID", TextBox1.Text);
? ? ? ? ? ? ? ? ? ? com.Parameters.AddWithValue("@StuNo", TextBox2.Text);
? ? ? ? ? ? ? ? ? ? com.Parameters.AddWithValue("@StuName", TextBox3.Text);
? ? ? ? ? ? ? ? ? ? com.Parameters.AddWithValue("@Age", TextBox4.Text);
? ? ? ? ? ? ? ? ? ? com.Parameters.AddWithValue("@Gender", TextBox5.Text);
第二種:
? ? ? ? ? ? ? ? ? ? string sql = "insert into Student values ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "')";
? ? ? ? ? ? ? ? ? ? OleDbCommand com = new OleDbCommand(sql, conn);
2.判斷當前是否存在學號
? ? ? ? public bool CheckSameName(TextBox TextBox2)?
? ? ? ? {
? ? ? ? ? ? bool result = false;
? ? ? ? ? ? string sql = "select [學號] from Student where [學號]=@StuNo";
? ? ? ? ? ? OleDbConnection conn = GetConnection();
? ? ? ? ? ? conn.Open();
? ? ? ? ? ? OleDbCommand comd = new OleDbCommand(sql, conn);
? ? ? ? ? ? comd.Parameters.AddWithValue("@StuNo", TextBox2.Text);
? ? ? ? ? ? OleDbDataReader read = comd.ExecuteReader();
? ? ? ? ? ? if (read.HasRows)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? result = true;
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ? result = false;
? ? ? ? ? ? }
? ? ? ? ? ? conn.Close();
? ? ? ? ? ? read.Close();
? ? ? ? ? ? return result;
? ? ? ? ? ? }
3.調用方法,顯示
? ? ? ? private void btn_Insert_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? conn.Open();
? ? ? ? ? ? try
? ? ? ? ? ? {
? ? ? ? ? ? ? ? opera.DataInsert(textBox1, textBox2, textBox3, textBox4, textBox5, conn);
? ? ? ? ? ? ? ? DataDisplay();
? ? ? ? ? ? }
? ? ? ? ? ? catch (Exception ex)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? MessageBox.Show(ex.ToString());
? ? ? ? ? ? }
? ? ? ? ? ? finally
? ? ? ? ? ? {
? ? ? ? ? ? ? ? conn.Close();
? ? ? ? ? ? }
? ? ? ? }
最終結果如下。
總結
以上是生活随笔為你收集整理的C#增删改查操作Access数据库之二(数据库的增加)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 提高编程思想
- 下一篇: c# char unsigned_dll