IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> C#操作数据库、打字程序,GridView访问数据库、程序打包本地sqlite数据库文件 -> 正文阅读

[大数据]C#操作数据库、打字程序,GridView访问数据库、程序打包本地sqlite数据库文件

访问数据库的类

class MyMeans  //访问数据库的类--类包含了程序使用的数据和方法声明。类一般包含多个方法。方法定义了类的行为。
    {
        public static int id = 0;
        public static string Login_ID = "";  //全局变量
        public static string Login_Name = "";
        public static string Mean_SQL = "", Mean_Table = "", Mean_Field = "";
        public static SQLiteConnection My_con;
        //定义一个类型的静态公共变量,用于判断数据库是否连接成功
        public static string M_str_sqlcon = @"Data Source=sypfexam.db;Version=3";
        public static int Login_n = 0;//存储职工基本信息表中的SQL语句
        public static string AllSql = "SELECT * from  type";
        public static int examid = 0;//打字题
        public static int chuanpiaoid = 0;//传票录入
        public static int kaoshiorsuiji = 0;//随机练习是1正计时,考试是2倒计时
        Form3 frm3=new Form3();
        Form6 frm6 = new Form6();
        public static SQLiteConnection getcon()
        { 
            My_con = new SQLiteConnection(M_str_sqlcon);
            My_con.Open();
            return My_con;
        }
        public void con_close()  //主要对数据库操作后,通过该方法判断是否与数据库连接,如果连接则关闭数据库连接
        {
            if (My_con.State == ConnectionState.Open)
            { 
            My_con.Close();  //关闭数据库的连接
            My_con.Dispose();  //释放My_con变量的所有空间
            }
        }

        public SQLiteDataReader getcom(string SQLstr)  //主要SQLiteDataReader对象已只读方式读取数据库信息,并以对象进行返回
        { 
        getcon();//打开数据库连接
        SQLiteCommand My_com=My_con.CreateCommand();
        My_com.CommandText=SQLstr; //获取指定的SQL语句
        SQLiteDataReader My_read=My_com.ExecuteReader();//执行SQL语句,生成一个sqldatareader对象
            return My_read;
        }

        public void getsqlcom(string SQLstr)  //增删改查
        {
            getcon();
            SQLiteCommand SQLcom = new SQLiteCommand(SQLstr, My_con);
            SQLcom.ExecuteNonQuery();//执行SQL语句
            SQLcom.Dispose();//释放所有空间
            con_close();//关闭数据库连接
        }
        public void typeexam()
        {
            if (examid <= 14000) //必须在数据库范围内
            {
                SQLiteDataReader reader = getcom("SELECT * from type where id=" + examid);
              /*  Form3 frm3 = new Form3();*/

                while (reader.Read())
                {
                    frm3.Controls["label6"].Text = reader.GetString(0);
                    frm3.Controls["label6"].Refresh();
                    frm3.Controls["label7"].Text = reader.GetString(1);
                    frm3.Controls["label7"].Refresh();
                    frm3.Controls["label8"].Text = reader.GetString(2);
                    frm3.Controls["label8"].Refresh();
                    frm3.Controls["label9"].Text = reader.GetString(3);
                    frm3.Controls["label9"].Refresh();
                    frm3.Controls["label10"].Text = reader.GetString(4);
                    frm3.Controls["label10"].Refresh();
                    frm3.Refresh();
                    /*Console.WriteLine(reader.GetString(0));
                    Console.WriteLine(reader.GetString(0).GetType());*/
                    /*Console.WriteLine(reader[1].ToString());*//**/
                }
                frm3.Show();
                con_close();//关闭数据库连接
                examid += 1;//时间中断和介绍后记得释放

            }
        }

        public void chuanpiao()
        {
           SQLiteDataReader reader = getcom("SELECT * from chuanpiao where tao=" + chuanpiaoid);
            /*  Form3 frm3 = new Form3();*/

            while (reader.Read())
            {
               

               

            }
                frm6.Show();
                con_close();//关闭数据库连接        
        }
        private void QueryAllCourse()
        {
            

        }

        
        }


    }
//实现部分
 private void button1_Click(object sender, EventArgs e)
        {
            if (Convert.ToInt32(textBox1.Text) < 13001)
            {
                
                MyMeans m = new MyMeans();
                MyMeans.examid = Convert.ToInt32(textBox1.Text);
                MyMeans.kaoshiorsuiji = 2;//考试代号是2
                this.Close();//关闭当前窗口
                m.typeexam();
            }
            else
            {
                label4.Text = "请按照要求输入\t\n正确的数字";
            
            }
        }

打字程序,一样的计分,不一样的变红,多余的变红

 class Type_Code
    {
        
        public RichTextBox type;
        public Label cankao;
        public KeyPressEventArgs e;
        /*public int type_len1;
        public int cankao_len1;*/
        public double score = 0;
        public static double defen = 0;//计算总得分
        public Label xianshi;
        public void Type_Show()//type_len1传入richTextBox1.TextLength  cankao_len1传入label6.Text.Length
        {
            if (type.TextLength <= cankao.Text.Length)  //小于等于label的长度时
            {
                for (int t = 1; t < type.TextLength + 1; t++) //遍历每一个字符
                {
                    if (type.Text[t - 1] != cankao.Text[t - 1])//字符不相等
                    {
                        type.Select(t - 1, 1);

                        type.SelectionColor = System.Drawing.Color.Red; //变红

                        type.Select(t, 0);
                    }
                    else//标签和输入字符相等
                    {
                        type.Select(t - 1, 1);
                        type.SelectionColor = System.Drawing.Color.Blue;//正确是绿色
                        type.Select(t, 0);
                    }
                }
            }
            else//大于label的长度时超出的全部变红
            {
                for (int t = 1; t < cankao.Text.Length + 1; t++) //遍历每一个字符
                {
                    if (type.Text[t - 1] != cankao.Text[t - 1])//字符不相等
                    {
                        type.Select(t - 1, 1);
                        type.SelectionColor = System.Drawing.Color.Red; //变红
                    }
                    else//标签和输入字符相等
                    {
                        type.Select(t - 1, 1);
                        type.SelectionColor = System.Drawing.Color.Blue;//正确是绿色
                    }
                }
                //超出的全部变红
                type.Select(cankao.Text.Length, type.TextLength);//不包括括号左边的
                type.SelectionColor = System.Drawing.Color.Red;
                type.Select(type.TextLength, 0);
            }
        }
        public double GetScore(int i) //计算得分
        {
        if (type.Text == cankao.Text)
        {
            switch (i)
            {
                case 6:
                    score = 0.5;
                    break;
                case 7:
                    score = 2;
                    break;
                case 8:
                    score = 3;
                    break;
                case 9:
                    score = 0.5;
                    break;
                case 10:
                    score = 0.5;
                    break;
            }
        }
        else 
        if (i == 9 && type.Text == cankao.Text + "mj")
        {
            score = 13; 
        }
        else if (i == 9 && type.Text == cankao.Text + "s")
        {
            score = 1;
        }
        else { score = 0; }
            
            return score;
        }
        public void Type_Next()
        {
            
            if (e.KeyChar == (char)Keys.Enter) //如果是按的回车键
            {
               /* SendKeys.Send("{tab}");*/
                type.Enabled= false;
            }
          
        }


    }

//使用  当打字时候
  private void richTextBox3_TextChanged(object sender, EventArgs e)
        {
            Type_Code r = new Type_Code();
            r.cankao = label8;
            r.type = richTextBox3;
            r.Type_Show();
        }
//使用 当按的是enter键盘时候
 private void richTextBox3_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)Keys.Enter)
            {
                richTextBox4.Enabled = true;
                Type_Code r = new Type_Code();
                r.e = e;
                r.type = richTextBox3;
                r.cankao = label8;
                Type_Code.defen += r.GetScore(8);
                richTextBox3.Enabled = false;
                richTextBox4.Clear();
                richTextBox4.Select(0, 1);
                /*r.Type_Next();*/
                label18.Text = Type_Code.defen.ToString();
            }
        }

在GridView上打字-小键盘录入
事件为

 private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            int rowindex = e.RowIndex;//获取当前行
            int Comindex = e.ColumnIndex;//获取当前列

            if (Comindex==2&&kaoshikaishi == true && zb == false) //如果按了考试开始键
            {
                panduan = dataGridView1.Rows[rowindex].Cells[1].Value.Equals(dataGridView1.Rows[rowindex].Cells[2].Value);
                if (rowindex < 99)
                {
                    if (panduan == true) //左边等于右边
                    {
                        dataGridView1.Rows[rowindex].Cells[3].Value = "正确";
                        fen += 1;
                        label4.Text = fen.ToString();
                        panduan = false;

                    }
                    else
                    { dataGridView1.Rows[rowindex].Cells[3].Value = "错误"; }
                }
                else //100行和之后
                {
                    if (panduan == true)
                    {
                        dataGridView1.Rows[rowindex].Cells[3].Value = "正确";
                        fen += 1;
                        label4.Text = fen.ToString();
                        panduan = false;
                        timer1.Stop();
                        dataGridView1.ReadOnly = true;
                        dataGridView1.Rows[0].Cells[2].Selected = true;//光标放在第一行
                        button1.Text = "考试结束";
                    }
                    else
                    {
                        dataGridView1.Rows[rowindex].Cells[3].Value = "错误";
                        timer1.Stop();
                        dataGridView1.ReadOnly = true;
                        dataGridView1.Rows[0].Cells[0].Selected = true;//光标放在第一行
                        button1.Text = "考试结束";
                    }


                }
``'

```csharp
在这里插入代码片

gridview 访问数据库

 private void Form6_Load(object sender, EventArgs e)
        {
            
            dataGridView1.AutoGenerateColumns = false;
            string connectionString = @"Data Source=sypfexam.db;Version=3";
            SQLiteConnection dbConnection = new SQLiteConnection(connectionString);//***
            dbConnection.Open();
            string sqlCommandString = "SELECT * from chuanpiao where tao = " + MyMeans.chuanpiaoid;
            //利用 Adapter 转换结果到 datagrid
            SQLiteDataAdapter adapter = new SQLiteDataAdapter(sqlCommandString, dbConnection);
            // DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            // adapter.Fill(ds);
            adapter.Fill(dt);
            //DataView dv = ds.Tables[0].DefaultView;

            //关闭连接,并把结果显示在datagrid上
            dbConnection.Close();
            dbConnection.Dispose();
            //dataGridView1.DataSource = dv;
            
            dataGridView1.DataSource = dt;
            dataGridView1.Columns["Column2"].DataPropertyName = dt.Columns["rmb"].ToString();

            for (int i = 0; i< 100; i += 1)
            {

                dataGridView1.Rows[i].Cells[0].Value = i+1;
            }
            dataGridView1.ReadOnly = true;  



        }

**

程序打包本地sqlite数据库文件

**
在添加文件时候添加两遍
第一次把所有文件添加进去,
第二次在添加一遍文件(找到debug里放入的数据库本地文件和一些dll)

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-14 10:00:40  更:2022-05-14 10:01:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 5:45:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码