运用.NIT将数据存入数据库、读取数据库(运用封装)陈老师作业

我基础不好,根据所学的知识,书本的例题修改的,也不知道我理解的是否符合老师要求

运用C#将数据存入数据库、并且可以读取数据库里的数据,此项目我运用了封装。我运用了一个窗体将数据存读数据。

我首先创建了一个数据库,库名“数学题库” ,然后创建了一个表“tiku1”,

添加一个类Class1

class Class1
    {
        public string strCon = @"Data Source=.;Initial Catalog=数学题库;Integrated security=true";
        public SqlConnection sqlcon = new SqlConnection();
        public SqlDataAdapter sda = new SqlDataAdapter();
        public DataSet ds = new DataSet();
        public DataTable dt = new DataTable();
        public SqlDataReader sdr;
        public void suanshu()
        {
            try
            {
                sqlcon = new SqlConnection(strCon);
            }
            catch (Exception e)
            {
                MessageBox.Show("数据库连接不成功:" + e.ToString());
            }
        }
        public void suanFill(string selstr)
        {
            dt.Clear();
            sda = new SqlDataAdapter(selstr, strCon);
            sda.Fill(ds,"tiku1");
            dt = ds.Tables["tiku1"];
        }
        public void suanselect(string showtnfo)
        {
            sqlcon.Open();
            SqlCommand sqlcmd = new SqlCommand(showtnfo, sqlcon);
            sdr = sqlcmd.ExecuteReader();
        }
        public void suanInsert(string insertinfo)
        {
            sqlcon.Open();
            SqlCommand sqlcmd = new SqlCommand(insertinfo, sqlcon);
            try
            {
                sqlcmd.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                MessageBox.Show("数据插入失败:" + e.ToString());
            }
            sqlcon.Close();
        }
        public void suanGridViewUpd()
        {
            SqlCommandBuilder scb = new SqlCommandBuilder(sda);
            DialogResult result;
            result = MessageBox.Show("确定保存修改过的数据吗?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            if (result == DialogResult.OK)
            {
                dt = ds.Tables["tuku1"];
                sda.Update(dt);
                dt.AcceptChanges();
            }
        }
        public void suanDelete(string delStr)
        {
            sqlcon.Open();
            SqlCommand sqlcmd = new SqlCommand(delStr, sqlcon);
            try
            {
                sqlcmd.ExecuteNonQuery();
                MessageBox.Show("数据删除成功!");
            }
            catch (Exception ex)
            {
                MessageBox.Show("数据删除失败" + ex.ToString());
            }
            sqlcon.Close();
        }
    }
}

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string selstr = @"select * from tiku1 ";
        Class1 db = new Class1();

private void Form1_Load(object sender, EventArgs e)
        {
            db.suanshu();
            db.suanFill(selstr);
            comboBox1.ValueMember = "序号";
            comboBox1.DataSource = db.dt.DefaultView;
        }

private void button4_Click(object sender, EventArgs e)
        {
            db.suanshu();
            db.suanFill(selstr);
            dataGridView1.DataSource = db.dt;
        }

private void button1_Click(object sender, EventArgs e)
        {
            db.suanshu();
            string insertinfo = "insert into tiku1(序号,第一个数,符号一,第二个数,符号二,第三个数,符号三,结果) values(‘" + comboBox1.Text + "‘,‘" + textBox1.Text +
            "‘,‘" + textBox2.Text +
            "‘,‘" + textBox3.Text + "‘,‘" + textBox4.Text + "‘,‘" + textBox5.Text + "‘,‘" + textBox6.Text +
            "‘,‘" + textBox7.Text +
            "‘)";
            db.suanInsert(insertinfo);
            db.suanFill(selstr);
            dataGridView1.DataSource = db.dt;
        }

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string selinfo = "select 第一个数,符号一,第二个数,符号二,第三个数,符号三,结果 from tiku1 where 序号=‘" + comboBox1.Text.ToString().Trim() + "‘";
            db.suanshu();
            db.suanselect(selinfo);
            while (db.sdr.Read())

{

textBox1.Text = db.sdr["第一个数"].ToString();

textBox2.Text = db.sdr["符号一"].ToString();

textBox3.Text = db.sdr["第二个数"].ToString();

textBox4.Text = db.sdr["符号二"].ToString();

textBox5.Text = db.sdr["第三个数"].ToString();

textBox6.Text = db.sdr["符号三"].ToString();

textBox7.Text = db.sdr["结果"].ToString();

}

db.sdr.Close();
        }

private void button3_Click(object sender, EventArgs e)
        {
            db.suanshu();
            string strupd = "delete from tiku1 where 序号=‘" + comboBox1.Text.Trim() + "‘";
            db.suanDelete(strupd);
          
            db.suanFill(selstr);
            dataGridView1.DataSource = db.dt;
        }

private void button2_Click(object sender, EventArgs e)
        {
            db.suanshu();
            db.suanGridViewUpd();
        }

}

}

说明

每道题我都编辑了序号,可以根据序号选题,改题,(序号我设置了下拉列表)

1、点击查询可以查询数据库里表里数据

2、点击添加可以添加数据

3、删除数据,更新数据

时间: 2024-10-13 12:28:52

运用.NIT将数据存入数据库、读取数据库(运用封装)陈老师作业的相关文章

二进制数据将图片保存到数据库,并读取数据库二进制数据显示图片

一. 浏览图片 OpenFileDialog ofd = new OpenFileDialog();            ofd.InitialDirectory = @"E:\";            ofd.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files(*.*)|*.*";            ofd.RestoreDirectory = true; if (ofd

如何将exel表中数据存入到数据库

最近在做一个项目,平台那边有1000多条数据,都存在exel表中,本来也可以在系统里面一条一条录进去,但是这样太慢,那么有什么好的方法,可以把这数据,点几下按钮,就一次性完成呢.本文为原创,如需转载,请著名来源:http://blog.csdn.net/qq_22327455 下面开始详细讲述: 我的做的功能是用户点击上传文件按钮,选定需要的exel文件,然后再选择需要导入的数据表,点击导入,数据就一次性导入. 1. 首先需要下载一个php的exel类包,在百度里输入:phpexcel下载  

读取数据库数据,并将数据整合成3D饼图在jsp中显示

首先我将生成饼图的方法独立写成一个PieChar.java类,详细代码如下:(数据库需要自己建,如有需要的话) 1 import java.io.IOException; 2 import java.sql.SQLException; 3 import org.jfree.chart.ChartFactory; 4 import org.jfree.chart.JFreeChart; 5 import org.jfree.data.general.DefaultPieDataset; 6 7 p

知乎网页(用php从数据库读取数据)

---恢复内容开始--- 这几天都在做小项目,做的是知乎的网页,我觉得知乎网页最难的地方就在数据的读取,可以用json.js;也可以用php数据库来获取数据,下面是我写的一些用php读取数据库数据的代码,首先首页主要内容的读取,两个部分conn.php和zhihu_exec.php;注册有三部分conn.php,zhuce_add.php,zhuce.insert.php;登录有两个部分login.php,login.exec.php; 下面是具体的代码: 一:首页 //1.调用数据库,读取数据

jquery.datatable插件从数据库读取数据

一.分页 分页的基本思想是根据datatable的页码及每页显示的行数,将数据从数据库分段提出,然后再填充到表格中,以达到分页的效果. 这里需要用到datatable插件的几个属性: "sEcho":这个属性需要原封不动地传回给datatable,具体的作用我也不清楚,但是根据它值的变化情况来看,好像是一个操作次数的计数(之前我一直把它当做是pageindex来用,结果发现,不论我在datatable中是翻下一页还是翻上一页,它一直在增加.) "iDisplayStart&q

echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端

1.echarts的官网上的demo,都是直接写死的随机数据,没有和数据库的交互,所以就自己写了一下,ok,我们开始一步一步走一遍整个流程吧. 就以官网最简单的那个小demo来做修改吧.官网上的小demo的效果图如下:(很熟悉,有没有) 2.按照echarts的使用方法新建一个echarts.html文件.为ECharts准备一个具备大小(宽高)的Dom(讲的有点细,熟悉的朋友直接跳过) <!DOCTYPE html> <head> <meta charset="u

NPOI操作excel——利用反射机制,NPOI读取excel数据准确映射到数据库字段

> 其实需求很明确,就是一大堆不一样的excel,每张excel对应数据库的一张表,我们需要提供用户上传excel,我们解析数据入库的功能实现. 那么,这就涉及到一个问题:我们可以读出excel的表头,但是怎么知道每个表头具体对应数据库里面的字段呢? 博主经过一段时间的思考与构思,想到一法:现在的情况是我们有excel表A,对应数据库表B,但是A与B具体属性字段的映射关系我们不知.那我们是不是可以有一个A到B的映射文件C呢? 我想,说到这,大家就很明了了... 第一步:为每张excel创建一个与

解析Excel文件并把数据存入数据库

前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致总报同一个错,最后在同学的帮助下顺利解决,下面我把自己用"POI"解析的方法总结出来供大家参考(我用的是SpingMVC和hibernate框架). 1.web.xml中的配置文件 web.xml中的配置文件就按照这种方式写,只需要把"application.xml"换

python读取数据库数据,读取出的中文乱码问题

最近遇到python读取数据库数据,读取出的中文乱码问题, 网络搜索的基本是: "1. Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)2. MySQL数据库charset=utf-83. Python连接MySQL是加上参数 charset=utf84. 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8)" 这些,一一尝试后仍未解决.去数据库查看了下,发现这个出现中文乱码的字段类型是varcha