首页 > 其他分享 >2017-D

2017-D

时间:2023-03-24 09:23:25浏览次数:129  
标签:listView2 System books new using 2017 public

2017-D

数据库部分

  • 使用Windows 身份验证登录SQL Server ,建立数据库test0322,文件日志保存到一个专门的文件夹
  • 建表
  • 备份数据库,选定所创建数据库,右键-任务-备份-选择自己建立的文件夹位置,文件名和后缀都要完整的打出来(如:backupInfo.bak)
  • 打开VS,创建一个Windows 窗体应用(.NET Framework),文件夹选择刚才创建的文件夹中的 /source文件夹,框架选择.NET Framework 2.0
  • 在应用中创建DB.cs , Intent.cs, 以及自带的Form1窗体
  • 写代码

项目解决方案内容

DB.cs

using System;
using System.Collections.Generic;
using System.Data;//DataTable用到
using System.Data.SqlClient;//一些数据库操作类用到
using System.Text;

namespace test0322
{
    internal class DB : IDisposable
    {
        private SqlConnection sqlConnection;
        public DB() 
        {   //采用Windows 身份验证,关键词Trusted_Connection=SSPI
            sqlConnection = new SqlConnection(@"server=.;database=test0322;Trusted_Connection=SSPI");
            sqlConnection.Open();
        }
        //查询
        public DataTable GetBySql(string sql)
        {
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(new SqlCommand(sql,sqlConnection));
            DataTable dt = new DataTable();
            sqlDataAdapter.Fill(dt);
            return dt;
        }
        //相当于析构函数
        public void Dispose()
        {
           sqlConnection.Close();
        }
    }
}

Intent.cs

//本次工程未用到
using System;
using System.Collections.Generic;
using System.Text;

namespace test0322
{
    internal class Intent
    {
        //存数数据的字典容器
        public static Dictionary<string,Object> data = new Dictionary<string,Object>();
    }
}

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace test0322
{
    public partial class Form1 : Form
    {
        DB db;
        public Form1()
        {
            InitializeComponent();
            db = new DB();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            listView2.Columns.Add("书名", listView2.Width / 3 - 1, HorizontalAlignment.Left);
            listView2.Columns.Add("出版社", listView2.Width / 3 - 1, HorizontalAlignment.Left);
            listView2.Columns.Add("借阅次数", listView2.Width / 3 - 1, HorizontalAlignment.Left);
            DataTable dt = db.GetBySql(@"select [books].[b_name] as '书名',[books].[b_press] as '出版社',count([borrows].[b_id])as '借阅次数'  from [borrows],[books] where [borrows].[b_id]=[books].[b_id] group by [books].[b_id],[books].[b_name],[books].[b_press] order by '借阅次数' desc;");
            listView2.BeginUpdate();
            for(int i=0; i<dt.Rows.Count; i++)
            {
                ListViewItem listViewItem = new ListViewItem();
                for(int j=0; j<dt.Columns.Count; j++)
                {
                    if (j <= 0)
                    {
                        listViewItem.Text = dt.Rows[i][j].ToString();
                    }
                    else
                    {
                        listViewItem.SubItems.Add(dt.Rows[i][j].ToString());
                    }
                }
                listView2.Items.Add(listViewItem);
            }
            listView2.EndUpdate();
        }

        //查询按钮
        private void button1_Click(object sender, EventArgs e)
        {
            listView1.Clear();
            listView1.Columns.Add("书号", listView1.Width / 4 - 1, HorizontalAlignment.Left);
            listView1.Columns.Add("书名", listView1.Width / 4 - 1, HorizontalAlignment.Left);
            listView1.Columns.Add("出版社", listView1.Width / 4 - 1, HorizontalAlignment.Left);
            listView1.Columns.Add("借阅日期", listView1.Width / 4 - 1, HorizontalAlignment.Left);
            DataTable dt = db.GetBySql(@"select [books].[b_id] as '书号',[books].[b_name] as'书名',[books].[b_press] as '出版社',[borrows].[b_date] as '借阅日期' from [books],[borrows],[readers] where [readers].[r_name]='"+this.textBox1.Text+"' and [borrows].[r_id]=[readers].[r_id] and [borrows].[b_id]=[books].[b_id];");
            listView1.BeginUpdate();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ListViewItem listViewItem = new ListViewItem();
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    if (j <= 0)
                    {
                        listViewItem.Text = dt.Rows[i][j].ToString();
                    }
                    else
                    {
                        listViewItem.SubItems.Add(dt.Rows[i][j].ToString());
                    }
                }
                listView1.Items.Add(listViewItem);
            }
            listView1.EndUpdate();
        }

        //输入完Enter可代替查询按钮
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            //一旦用户在输入过程中输入Enter,则执行Button1的查询按钮点击事件
            if(e.KeyCode == Keys.Enter)
            {
                this.button1_Click(sender, e);
            }
        }
    }
}

效果


标签:listView2,System,books,new,using,2017,public
From: https://www.cnblogs.com/benbenlzw/p/17244850.html

相关文章

  • 2017-A
    2017-A题目描述:输入一个字符串,要求输出能把所有的小写字符放前面,大写字符放中间,数字放后面,并且中间用空格隔开,如果同种类字符间有不同种类的字符,输出后也要用字符隔开。......
  • COMP2017 精简指令系统
    COMP2017COMP9017Assignment2Due:11:59PMTuesday28March2023localSydneytimeThisassignmentisworth5%+30%ofyourfinalassessmentTaskDescriptionAh,......
  • P3747 [六省联考 2017] 相逢是问候
    [六省联考2017]相逢是问候P3747[六省联考2017]相逢是问候题目描述Informatikverbindetdichundmich.信息将你我连结。B君希望以维护一个长度为\(n\)的数......
  • 洛谷 P3758 [TJOI2017]可乐
    https://www.luogu.com.cn/problem/P3758给定一张图。一个机器人在1号点,每次它可以选择留在原地,沿一条边行走一次,自爆。机器人自爆后无法进行任何操作,求t时间内它所有可......
  • loj6144「2017 山东三轮集训 Day6」C
    loj6144「2017山东三轮集训Day6」C注意到修改只有位运算,容易想到将位拆开考虑。首先可以发现对某一位或上\(0\)或者是对某一位与上\(1\)是没有意义的,相当于没有操作......
  • PA 2017 Banany
    $$是夜萧索漏星光,一秋叶打漫天霜。钟响,卷地西风扫鸿芒。$$$$求索那堪路漫长,重心剖树早相忘。清唱,时空阻限又何妨?$$PA-2017Banany考虑点分树。先把点分树建出来再考虑更......
  • 「JOISC2017」门票安排
    题目点这里看题目。分析不妨先认为\(C_i=1\)。首先破环为链,则原问题等价于:你有一个长度为\(n\)的序列\(a\)和\(m\)个二元组\((l_i,r_i)\)。一开始时,\(a_i=0\)......
  • 【漏洞复现】Apache HTTPD 换行解析漏洞 (CVE-2017-15715)
    ApacheHTTPD换行解析漏洞(CVE-2017-15715)0x01漏洞描述ApacheHTTPD是一款HTTP服务器,它可以通过mod_PHP来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解......
  • csp201703-2
    这道题暴力能过,最离谱的是,我提交了,通过了100分,返回来看一眼代码发现我的数组只开了a[10].....这数据给的太随意了吧#include<bits/stdc++.h>usingnamespacestd;inta......
  • CCF 2017-12
    一:试题编号:2017-12-1试题名称:最小差值时间限制:1.0s内存限制:256.0MB问题描述:问题描述 给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。输入格式......