C#窗体-在线操作数据库(三)

在上一文章成功创建连接之后,就可以对数据库进行各种操作了,这些操作是通过已经建立好的连接实时的在线进行的,也叫做“在线访问”,在在线访问中数据库主要依靠Command与DataReader两个对象配合。

工作原理图如下:

期间,要求Connection对象始终保持不掉线,Command对象将SQL封装后提供给应用使用,DataRaeder则实时的在线读取数据源的数据,并且呈现给应用程序。

数据库在线访问实例:

利用Command与DataReader对象相互配合,在线访问C#实验一创建的SXCJ1数据库。

要求:能实现学生记录的添加和实时查看功能。

新建项目WinForm,在Form1设计视图中将窗体调整到合适的大小,各个控件的属性如下:

窗体和控件属性表
类型对象名属性名属性值
FormForm1Text在线访问数据源
TextBoxtxtAllStuMultilineTrue
ScrollBarsVertical
txtStuID--
txtName--
txtMajor--
txtCredit--
RadioButtonRbtnMaleText
RbtnFamaleText
GroupBoxgroupBox1Text输入学生信息
ButtonbtnSearchText刷新
btnInsertText添加

设计后如图:

图3_1

程序完整代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace _9_4
{
    public partial class Form1 : Form
    {
        string strcon = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=XSCJDB1;Integrated Security=True";

        public Form1()
        {
            InitializeComponent();
            btnSearch_Click(null, null);
        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void btnSearch_Click(object sender, EventArgs e)
        {
            txtAllStu.Clear();
            using(SqlConnection sqlcon = new SqlConnection(strcon))
            {
                sqlcon.Open();
                string sql = "SELECT * FROM XSB";
                SqlCommand command = new SqlCommand(sql, sqlcon);
                SqlDataReader reader = command.ExecuteReader();
                if(reader.HasRows)
                {
                    while(reader.Read())
                    {
                        txtAllStu.Text += reader[0].ToString() + reader[1].ToString() + reader[2].ToString() + 
                            reader[3].ToString() + reader[4].ToString() + reader[5].ToString() + "\r\n";

                    }
                }
                reader.Close();
            }
        }

        private void btnInsert_Click(object sender, EventArgs e)
        {
            SqlConnection sqlcon = new SqlConnection(strcon);
            try
            {
                string stuID = txtStuID.Text.Trim();
                string stuName = txtName.Text.Trim();
                string stuXB;
                if(RbtnMale.Checked)
                {
                    stuXB = "男";
                }
                else
                {
                    stuXB = "女";

                }
                string stuBirthday = dateTimePicker1.Value.ToShortDateString().Split(' ')[0];
                string stuMajor = txtMajor.Text.Trim();
                string stuCredit = txtCredit.Text.Trim();
                SqlCommand command = new SqlCommand();
                command.CommandText = "INSERT INTO XSB(Xnum,XM,XB,CSRQ,ZY,ZXF)  VALUES('" + stuID + "','" + stuName + "','" + stuXB + "','" + stuBirthday + "','" + stuMajor + "','" + stuCredit + "')";
                command.CommandType = CommandType.Text;
                command.Connection = sqlcon;
                sqlcon.Open();
                if(command.ExecuteNonQuery()==1)
                {
                    MessageBox.Show("插入成功!", "消息", MessageBoxButtons.OK);
                    btnSearch_Click(null, null);
                }

            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                sqlcon.Close();
            }
        }
    }
}

 运行程序,初始界面如图3_1所示,下部文本框中显示出数据库XSB表中所有学生信息的列表。

在窗体运行界面上方输入一个新的信息,新信息将会录入数据库中。

 

 

此时,界面上的信息会自动刷新,显示出刚刚添加的新记录,用户也可以在任何时候单击“刷新”按钮,查看数据库中记录的动态。 

C#的在线访问数据库就是这些了!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值