多数据库的链接

1,首先定义一个数据库连接与操作的抽象类,这个里面写一些你需要用到的一些抽象方法。

然后就是对应你的数据库写与之对应的类并继承你说定义的抽象类,并重写抽象类里面的方法!

对应代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace DBASES
{
   public abstract class DBastr
    {
       abstract public int Insert(string number1,string operation, string number2);
       abstract public int Delect();
       abstract public DataTable Gettable();
       abstract public void Open();
       abstract public void Close();
    }
   public class TIASS : DBastr
   {
       public static string constr = "Data Source=.;Initial Catalog=TIASS;Integrated Security=True";
       SqlConnection conn = new SqlConnection(constr);
       public override void Open()
       {
           conn = new SqlConnection(constr);
           conn.Open();
       }
       public override void Close()
       {
           conn.Close();
       }
       public override int Insert(string number1, string operation, string number2)
       {
           string cmdstr = "insert into TI(number1,operation,number2) values (‘"+number1+"‘,‘"+operation+"‘,‘"+number2+"‘)";
           Open();
           SqlCommand cmd = new SqlCommand(cmdstr, conn);
           int a = cmd.ExecuteNonQuery();
           Close();
           return a;
       }
       public override int Delect()
       {
           string cmdstr = "delete from TI";
           Open();
           SqlCommand cmd = new SqlCommand(cmdstr, conn);
           int a = cmd.ExecuteNonQuery();
           Close();
           return a;
       }
       public override DataTable Gettable()
       {
           string cmdstr = "select number1,operation, number2 from TI";
           SqlDataAdapter dat = new SqlDataAdapter(cmdstr,conn);
           DataTable dt = new DataTable();
           dat.Fill(dt);
           return dt;
       }
   }
   public class TIBD : DBastr
   {
      public static string constr = "Data Source=.;Initial Catalog=TIBD;Integrated Security=True";
       SqlConnection conn = new SqlConnection(constr);
       public override void Open()
       {
           conn.Open();
       }
       public override void Close()
       {
           conn.Close();
       }
       public override int Insert(string number1, string operation, string number2)
       {
           string cmdstr = "insert into TA(number1,operation,number2) values (‘" + number1 + "‘,‘" + operation + "‘,‘" + number2 + "‘)";
           Open();
           SqlCommand cmd = new SqlCommand(cmdstr, conn);
           int a = cmd.ExecuteNonQuery();
           Close();
           return a;

       }
       public override int Delect()
       {
           string cmdstr = "delete from TA";
           Open();
           SqlCommand cmd = new SqlCommand(cmdstr, conn);
           int a = cmd.ExecuteNonQuery();
           Close();
           return a;
       }
       public override DataTable Gettable()
       {
           string cmdstr = "select number1,operation, number2 from TA";
           SqlDataAdapter dat = new SqlDataAdapter(cmdstr, conn);
           DataTable dt = new DataTable();
           dat.Fill(dt);
           return dt;
       }

   }
   public class Faction //定义工厂类
   {

       public DBastr dbastr;
       public DBastr GetDB(string DBtyle)
       {
           switch (DBtyle)
           {
               case "TIASS":
                   dbastr = new TIASS();
                   break;
               case "TIDB":
                   dbastr = new TIBD();
                   break;

           }
           return dbastr;

       }
   }
}

然后定义计算所用的类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DBASES
{

    interface Iation//定义计算接口
    {
        double Calation(double a, double b);
    }
    class Add : Iation//加法
    {
        public double Calation(double a, double b)
        {
            return a + b;
        }
    }
    class Sub : Iation//减法
    {
        public double Calation(double a, double b)
        {
            return a - b;
        }
    }
    class Mul : Iation//乘法
    {
        public double Calation(double a, double b)
        {
            return a * b;
        }
    }
    class Div : Iation//除法
    {
        public double Calation(double a, double b)
        {
            if (b == 0)
            {
                throw new Exception("除数不能为零!");
            }
            else
            {
                return a / b;
            }
        }
    }
    class Factionsss
    {
        private Iation clation;
        public Factionsss(string operation)
        {
            switch (operation)
            {
                case "+":
                    clation = new Add();
                    break;
                case "-":
                    clation = new Sub();
                    break;
                case "*":
                    clation = new Mul();
                    break;
                case "/":
                    clation = new Div();
                    break;
            }

        }
        public double cal(double a, double b)
        {
            return clation.Calation(a, b);
        }

    }
}

from1代码

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

namespace DBASES
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Faction faction = new Faction();
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton1.Checked == true)
            {
                label2.Text = "你选择了TIASS数据库!";
            }
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton2.Checked == true)
            {
                label2.Text = "你选择了TIDB数据库!";
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (radioButton1.Checked == true)
            {

                int a = faction.GetDB("TIASS").Insert(textBox1.Text, comboBox1.Text, textBox2.Text);
                if (a > 0)
                {
                    MessageBox.Show("保存成功!");
                }
                else
                {
                    MessageBox.Show("保存失败!");
                }
                textBox1.Clear();
                textBox2.Clear();

            }
            else if (radioButton2.Checked == false)
            {
                MessageBox.Show("请选择你所要链接的数据库!");
            }
            else
            {

                int b = faction.GetDB("TIDB").Insert(textBox1.Text, comboBox1.Text, textBox2.Text);
                if (b > 0)
                {
                    MessageBox.Show("保存成功!");
                }
                else
                {
                    MessageBox.Show("保存失败!");
                }
                textBox1.Clear();
                textBox2.Clear();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (radioButton1.Checked == true)
            {
                int c = faction.GetDB("TIASS").Delect();
                if (c > 0)
                {
                    MessageBox.Show("删除成功!");
                }
                else
                {
                    MessageBox.Show("删除失败!");
                }
            }
            else if (radioButton2.Checked == true)
            {
                int d = faction.GetDB("TIDB").Delect();
                if (d > 0)
                {
                    MessageBox.Show("删除成功!");
                }
                else
                {
                    MessageBox.Show("删除失败!");
                }
            }
            else
            {
                MessageBox.Show("请选择你所要删除的数据!");
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Form2 fra = new Form2();
            fra.ShowDialog();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            radioButton1.Checked = true;
        }
    }
}

from1设计

from2代码:

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

namespace DBASES
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        private int i = 0;
        Faction fation = new Faction();
        private void Form2_Load(object sender, EventArgs e)
        {
            radioButton1.Checked = true;
            i = 0;
            Read("TIASS");

        }
        public void Read(string DB)
        {

            DataTable dt = fation.GetDB(DB).Gettable();

            if (i <= dt.Rows.Count - 1)
            {
                textBox1.Text = dt.Rows[i][0].ToString().Trim();
                label1.Text = dt.Rows[i][1].ToString().Trim();
                textBox2.Text = dt.Rows[i][2].ToString().Trim();
                i++;

            }
            else
            {
                MessageBox.Show("本数据库题你做完了!");

            }

        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            i = 0;
            Read("TIDB");
        }

        private void textBox3_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                double a = Convert.ToDouble(textBox1.Text);
                double b = Convert.ToDouble(textBox2.Text);
                string oper = label1.Text;
                Factionsss fas = new Factionsss(oper);
                double answer = fas.cal(a, b);
                if (textBox3.Text == answer.ToString())
                {
                    MessageBox.Show("回答正确!");
                }
                else
                {
                    MessageBox.Show("回答错误!");
                }
                textBox3.Clear();
                if (radioButton1.Checked == true)
                {
                    Read("TIASS");
                }
                else
                {
                    Read("TIDB");
                }
            }
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            i = 0;
            Read("TIASS");
        }
    }
}

from2设计

测试

TIASS数据库存题

TIDB数据库存题

TIASS数据库做题

TIDB数据库做题

多数据库的存题读题感觉很灵活,但是只能是表结构相同的情况下才能成功?

本来是想写一个可以两个数,三个数,四个数都可以选择的数据库存题读题。但是发现用这个方法无法实现!

时间: 2024-10-05 05:02:09

多数据库的链接的相关文章

修改数据库最大链接数

背景叙说: 多个应用在同一数据库在建立多个用户,并进行访问的时候.这时,我们需要注意数据库的最大链接数. 第一步,在cmd命令行,输入sqlplus 第二步,根据提示输入用户名与密码 1. 查看processes和sessions参数 SQL> show parameter processes NAME                                 TYPE        VALUE db_writer_processes                 integer    

夺命雷公狗---Thinkphp----5之数据库的链接

我们打开WEB目录下发现了Common和Home以及Runtime这三个文件夹 那么我们第一个目标是完成网站后台的首页吧,那么我们就直接将Home的文件夹复制一份出来,并且改名为Admin这样就可以分出前后台目录文件了 下一步是在b1\WEB\Common\Conf\config.php配置文件上设置下后台的配置文件和数据库的链接方式了,而且里面也可以一块开启session到时候不用那么麻烦,一个个的去打开了,如下所示: <?php return array( //'配置项'=>'配置值' /

SQL Server安全(7/11):使用跨数据库所有权链接(Cross-Database Ownership Chaining)的跨数据库安全

在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间. 从让人眼花缭乱的客户端使用连接,通过到处分布的网络,尤其是互联网,关系数据库在各种应用程序里广泛使用.这使数据对任何人,在任何地方都可访问.数据库可以保存人类知识的很大部分,包括高度敏感的个人信息和让国际商务工作的关

第七篇 SQL Server安全跨数据库所有权链接

本篇文章是SQL Server安全系列的第七篇,详细内容请参考原文. Relational databases are used in an amazing variety of applications with connections from a dizzying array of clients over widely distributed networks,特别是互联网,使得数据几乎向任何人,任何地方开放.数据库可以包含相当大部分的人类知识,包括高度敏感的个人信息和关键数据.数据库的

Oracle数据库的链接数目超标

测试场景:Oracle数据库的链接数目超标,iServer是否自动连接. 测试步骤:(1)设置了最大连接数为85,oracle后台进程有83:(2)开启3台iserver(A,B,C)A,B发布test正常,在C上发布后,A,B上的服务连接失败.(3)关闭iserver B,iserverC 后,发布在iserverA里的test服务重新连接成功 测试结论:Oracle数据库的链接数目超标后,iServer自动连接数据库功能正常. 总结: 1.查看oracle默认的连接数为: >show par

jdbc.properties 包含多种数据库驱动链接的版本。

# Properties file with JDBC-related settings. ########## # HSQLDB # ########## #jdbc.driverClassName=org.hsqldb.jdbcDriver #jdbc.url=jdbc:hsqldb:hsql://localhost:9001/bookstore #jdbc.username=sa #jdbc.password= ########### # MySQL 5 # ########### jdb

关闭数据库当前链接,数据库脚本

在进行数据库操作时,如还原数据库,有时候显示如下错误Exclusive access could not be obtained because the database is in use 可以使用下面语句,关闭当前链接以便继续操作. use Master ALTER DATABASE yourdatabasename SET MULTI_USER WITH ROLLBACK IMMEDIATE: 关闭数据库当前链接,数据库脚本

sql server与mysql数据库的链接

链接的方法:通过OLEDB接口链接 链接工具:在本地[管理工具]选择[ODBC项]在此创建mysql的数据库链. mysql的设置: 创建一个用户供sql server使用 要求:此用户拥有访问mysql指定数据库的权限 sql server的设置:在sql server数据库中创正式创建mysql库的DBLINK步骤: 选择[服务器对象]下的[链接服务器]右击鼠标选择"新建链接服务器"如图所示一步一步配置即可: 创建完成后通过以下SQL语句测试是否能正常连接: select *fro

注册和登陆与数据库的链接

注册和登陆其实是从一个表中进行提取和写入数据 1.(1)先建立一个注册页面 1 2 3 4 5 6 7 8 9 <body>         <h1>注册页面</h1>         <form action="./zhucechuli.php" method="post">     //链接到的文件,就是登陆的处理页面             <div>用户名:<input type="