博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#增删改查操作Access数据库之二(数据库的增加)
阅读量:4303 次
发布时间:2019-05-27

本文共 2321 字,大约阅读时间需要 7 分钟。

功能:添加四个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();
            }
        }
最终结果如下。

你可能感兴趣的文章
使用nginx配置多个php-fastcgi负载均衡
查看>>
CURL抓取网页内容并用正则提取。
查看>>
Ngin的配置文件nginx.conf完整配置说明(包括fastcgi和负载均衡设置)
查看>>
浏览器显示网页的机制
查看>>
CSS基础知识
查看>>
Nginx+PHP-FPM优化技巧总结
查看>>
Ubuntu安装Torque教程
查看>>
CentOS下使用tcpdump网络抓包用
查看>>
Java笔试面试题002
查看>>
Java笔试面试题003
查看>>
Java太阳系小游戏分析和源码
查看>>
Java笔试面试题004
查看>>
Java小游戏之打飞机(一)
查看>>
Java笔试面试题005
查看>>
oop_day02_类、重载_20150810
查看>>
Linux常用命令002之搜索命令locate、whereis、which、find、grep
查看>>
oop_day03_内存管理、引用类型数组
查看>>
Java小游戏之打飞机(二)
查看>>
oop_day04_继承、重写_20150812
查看>>
Java笔试面试题006
查看>>