111111111111111111111111111111111111111111111111111111111111111 package com;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class db {
String url="jdbc:mysql://localhost/liuyan?useUnicode=true&characterEncoding=gb2312";
String username="root";
String password="lovebin";
Connection con=null;
Statement stmt;
ResultSet rs;
public db(){
stmt=null;
rs=null;
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){
System.out.println("load Driver exception");
}
try{
con=DriverManager.getConnection(url, username, password);
}catch(SQLException e){
System.out.println("SQL exception");
}
if(con!=null)
{
System.out.println("lianjiechenggong");
}
}
public boolean exeSql(String strSql)
{
try{
stmt=con.createStatement();
stmt.executeUpdate(strSql);
return true;
}catch(Exception ex)
{
System.out.println(ex.toString());
return false;
}
}
public ResultSet exeSqlQuery(String strSql)
{
try{
stmt=con.createStatement();
rs=stmt.executeQuery(strSql);
}catch(Exception ex)
{
System.out.println(ex.toString());
rs=null;
}
return rs;
}
}
2222222222222222222222222222222222222222222222222222222222222222 package com;
import java.sql.*;
import java.text.*;
public class users extends db{
private int UserID;
private String UserName;
private String UserPassword;
private String strSql;
public users()
{
UserID=0;
UserName="";
UserPassword="";
strSql="";
}
public boolean add_user()
{
strSql="insert into users(UserName,UserPassword)";
strSql=strSql+"values(";
strSql=strSql+"'"+UserName+"',";
strSql=strSql+"'"+UserPassword+"'";
strSql=strSql+")";
boolean isAdd=super.exeSql(strSql);
return isAdd;
}
public boolean is_exist()
{
strSql="select * from 'users'where UserName=UserName";
ResultSet rs=null;
boolean isExist=false;
try{
rs=super.exeSqlQuery(strSql);
while(rs.next())
{
isExist=true;
}
}catch(Exception ex)
{
System.out.println(ex.toString());
}
return isExist;
}
public boolean user_valid()
{
strSql="select * from users where UserName=" +
"'"+UserName+"'" +
"and UserPassword=" +
"'"+UserPassword+"'";
ResultSet rs=null;
boolean isvalid=false;
try{
rs=super.exeSqlQuery(strSql);
while(rs.next())
{
https://www.doczj.com/doc/8b3000051.html,erID=rs.getInt("UserID");
isvalid=true;
}
}catch(Exception ex)
{
System.out.println(ex.toString());
}
return isvalid;
}
public boolean init()
{
strSql="select * from users where UserID= ";
strSql=strSql+UserID;
try{
ResultSet rs=super.exeSqlQuery(strSql);
if(rs.next())
{
https://www.doczj.com/doc/8b3000051.html,erID=rs.getInt("UserID");
https://www.doczj.com/doc/8b3000051.html,erName=rs.getString("UserName");
https://www.doczj.com/doc/8b3000051.html,erPassword=rs.getString("UserPassword");
return true;
}else {
return false;
}
}catch(Exception ex)
{
System.out.println(ex.toString());
return false;
}
}
public ResultSet show_all_users()
{
strSql="select * from users";
ResultSet rs=null;
try{
rs=super.exeSqlQuery(strSql);
}catch(Exception ex)
{
System.out.println(ex.toString());
}
return rs;
}
public int getUserID() {
return UserID;
}
public void setUserID(int userID) {
UserID = userID;
}
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
public String getUserPassword() {
return UserPassword;
}
public void setUserPassword(String userPassword) {
UserPassword = userPassword;
}
}
333333333333333333333333333333333333333333333333
package com;
import java.sql.*;
import java.text.*;
public class words extends db {
private int WordsID;
private String WordsTitle;
private String WordsContent;
private String WordsTime;
private int UserID;
private String strSql;
private SimpleDateFormat timeFormatter;
public words()
{
WordsID=0;
WordsTitle="";
WordsContent="";
UserID=0;
WordsTime=timeFormatter.format(new java.util.Date());
strSql="";
timeFormatter=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
}
public boolean add_words()
{
strSql="insert into words(WordsTitle,WordsContent,WordsTime,UserID)";
strSql=strSql+"values(WordsTitle,WordsContent,WordsTime,UserID)";
boolean isAdd=super.exeSql(strSql);
return isAdd;
}
public boolean init()
{
strSql="select * from words where WordsID= ";
strSql=strSql+WordsID;
try{
ResultSet rs=super.exeSqlQuery(strSql);
if(rs.next())
{
this.WordsID=rs.getInt(WordsID);
this.WordsTitle=rs.getString(WordsTitle);
this.WordsContent=rs.getString(WordsContent);
this.WordsTime=rs.getString(WordsTime);
https://www.doczj.com/doc/8b3000051.html,erID=rs.getInt(UserID);
return true;
}else {
return false;
}
}catch(Exception ex)
{
System.out.println(ex.toString());
return false;
}
}
public ResultSet show_all_words()
{
strSql="select * from words";
ResultSet rs=null;
try{
rs=super.exeSqlQuery(strSql);
}catch(Exception ex)
{
System.out.println(ex.toString());
}
return rs;
}
public int getWordsID() {
return WordsID;
}
public void setWordsID(int wordsID) {
WordsID = wordsID;
}
public String getWordsTitle() {
return WordsTitle;
}
public void setWordsTitle(String wordsTitle) {
WordsTitle = wordsTitle;
}
public String getWordsContent() {
return WordsContent;
}
public void setWordsContent(String wordsContent) {
WordsContent = wordsContent;
}
public String getWordsTime() {
return WordsTime;
}
public void setWordsTime(String wordsTime) {
WordsTime = wordsTime;
}
public int getUserID() {
return UserID;
}
public void setUserID(int userID) {
UserID = userID;
}
public SimpleDateFormat getTimeFormatter() {
return timeFormatter;
}
public void setTimeFormatter(SimpleDateFormat timeFormatter) { this.timeFormatter = timeFormatter;
}
}
一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar 类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符
c#数据库连接去sql server 为了简化数据库连接和操作,编写一个数据库dll文件也是比较有用的。只需要设置参数就可以完成数据库操作 属性 OUTPUTSTR 存储过程输出 CONSTR 数据库连接字符串 SQL_SLT 存储过程名或sql语句列表名 代码错误信息返回或连接关闭状态 public int sql_select(int cmdtype, int sqlst,int n) 数据库语句执行方法, cmdtype设置数据源执行的SQL语句或存储过程,即commandtype属性(0为text枚举,1为storedprocedure枚举,其他值为tabledirect枚举); sqlst设置执行SQL语句的方式,0为executenonquery方法执行,1为executereader 方法执行,其他为executescalar方法执行。设置存储过程参数个数。方法返回受 影响的行数 public Boolean Connopen() 打开数据库连接方法,返回bool值,true为打开,false 为未打开,并将未打开错误返回到EXSTR属性里 public void conn_close() 连接关闭方法,将关闭状态返回到EXSTR属性 public void sqlsp(string p1,string p2,string p3,int p4,int p5) 获取SqlParameter 对象参数,p1获取SqlParameter.ParameterName属性值,p2获取SqlParameter.sqldbtype属性值, p3获取SqlParameter.value属性值,p4获取SqlParameter.size属性值, p5设置SqlParameter.Directions属性值,0为ParameterDirection.Input、 1为ParameterDirection.InputOutput、2为ParameterDirection.Output、 大于3为ParameterDirection.ReturnValue public DataSet ds 返回查询结果集 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Data; using System.Collections; namespace connet { public class jdbccoonn { private string constr, exstr, sql_slt,outputstr; private static int q; public static int Q { get {
数据库新技术综述 摘要:综述数据库新技术,指出数据库技术目前的研究状态和发展趋势,介绍一些数据库新技术的最新动态,并指出数据库应用所面临的挑战,指出数据库技术当今的研究热点和未来的发展趋势。 关键词:数据库;面向对象数据库;分布式数据库;数据仓库;数据挖掘;联机分析处理;发展 一、引言: 自从计算机问世以来,就有了处理数据、管理数据的需求,由此,计算机技术新的研究分支——数据库技术应运而生。随着计算机应用领域的不断扩展和多媒体技术的发展,数据库已经是计算机科学技术中发展最快、应用最广泛的重要分支之一。目前,数据库技术已经相当成熟,被广泛应用于各行各业中,成为现代信息技术的主要组成部分,是现代计算机信息系统和计算机应用的基础和核心。 另外,各种学科与数据库技术的有机结合,从而使数据库领域中新内容、新应用、新技术层出不穷,形成了各种各样的数据库系统:面向对象数据库系统、分布式数据库系统、知识数据库系统、模糊数据库系统、并行数据库系统、多媒体数据库系统等;数据库系统被应用到特定的领域后,又出现了工程数据库、演绎数据库、时态数据库、统计数据库、空间数据库、科学数据库、文献数据库等;他们继承了传统数据库的成果和技术,加以发展优化,从而形成的新的数据库,视为“进化”的数据库。可以说新一代数据库技术的研究与发展呈现了百花齐放的局面。 首先我们来了解一下数据库新技术有哪些:面向对象数据库;分布式数据库;数据仓库;数据挖掘;联机分析处理等。 二、概述新技术 (一).面向对象数据库技术 面向对象是一种认识方法学,也是一种新的程序设计方法学。把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。 其优点为: (1).易维护:可读性高且方便低成本; (2).质量高:在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量; (3).效率高:在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。
不同服务器数据库之间的数据操作 --创建链接服务器 exec sp_addlinkedserver '链接名', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin '链接名', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from 链接名.数据库名.dbo.表名 --导入示例 select * into 表 from 链接名.数据库名.dbo.表名 --以后不再使用时删除链接服务器 exec sp_dropserver '链接名', 'droplogins ' --连接远程/局域网数据(openrowset/openquery/opendatasource) --1、openrowset --查询示例 select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --生成本地表
select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --把本地表导入远程表 insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) select *from 本地表 --更新本地表 update b set b.列A=a.列A from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b on a.column1=b.column1 --openquery用法需要创建一个连接 --首先创建一个连接创建链接服务器 exec sp_addlinkedserver '链接名', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' --查询 select * FROM openquery(链接名, 'SELECT * FROM 数据库.dbo.表名 ') --把本地表导入远程表 insert openquery(链接名, 'SELECT * FROM 数据库.dbo.表名 ')
c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE, MYSQL)(一)收藏 首先定义数据库操作的标准接口IDBAccess,定义接口的基本功能; 通过基本的接口设置,完成数据访问的统一抽象。 public interface IDBAccess { void Init(string strServer, string strDataBase, string strUser, string str Pwd); void Open(); void Close(); bool TestConn(); int RunNoQuery(string strCmd); DataTable RunQuery(string strCmd); DBType DBType { get;} int GetFiledMax(string strTable, string strField); DataTable Tables { get; } DataTable GetColumns(); DataTable GetColumns(string strTable); } c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE, MYSQL)(二)收藏 使用静态工厂模式,通过传入枚举型参数,动态创建访问实例 实现模式上采用基本实现接口,派生类继承基类的虚函数,从而实现代码的耦合较低,有很好的扩展性。 public enum DBType {
Access, SQL, DB2, Oracle, MySQL } public static class DBAccessFactory { public static IDBAccess Create(DBType type) { IDBAccess IRet = null; switch (type) { case DBType.Access: IRet = new Access(type); break; case DBType.SQL: IRet = new SQL(type); break; default: break; } return IRet; } private abstract class DBAccess : IDBAccess {
Sql语句跨数据库操作,保留下来以后用 不同服务器数据库之间的数据操作 --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.数据库名.dbo.表名 --导入示例 select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使用时删除链接服务器 exec sp_dropserver 'ITSV ', 'droplogins ' --连接远程/局域网数据(openrowset/openquery/opendatasource) --1、openrowset --查询示例 select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --生成本地表 select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --把本地表导入远程表 insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) select *from 本地表 --更新本地表 update b set b.列A=a.列A from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b on a.column1=b.column1 --openquery用法需要创建一个连接 --首先创建一个连接创建链接服务器
命令行 1、显示当前数据库服务器中的数据库列表:mysql> SHOW DATABASES; 2、建立数据库:mysql> CREATE DATABASE 库名; 3、建立数据表:mysql> USE 库名;mysql> CREATE TABLE 表名(字段名VARCHAR(20), 字段名CHAR(1)); 4、删除数据库:mysql> DROP DATABASE 库名; 5、删除数据表:mysql> DROP TABLE 表名; 6、将表中记录清空:mysql> DELETE FROM 表名; 7、往表中插入记录:mysql> INSERT INTO 表名VALUES ("hyq","M"); 8、更新表中数据:mysql-> UPDATE 表名SET 字段名1='a',字段名2='b' WHERE 字段名3='c'; 9、用文本方式将数据装入数据表中:mysql> load data local infile "d:/mysql.txt" into table 表名; 10、导入.sql文件命令:mysql> USE 数据库名;mysql> source d:/mysql.sql; 11、命令行修改root密码:mysql> update https://www.doczj.com/doc/8b3000051.html,er set password=password('新密码') where user='root';mysql> flush privileges; 12.修改密码的三种方法:mysql>update user set password=password('') where user='joy_pen';mysql>flush privileges;mysql>set password for 'joy_oen'=password('');mysql>grant usage on *.* to 'joy_pen' identified by ''; 1、创建数据库 命令:create database <数据库名> 例如:建立一个名为xhkdb 的数据库mysql> create database xhkdb; 2、显示所有的数据库 命令:show databases (注意:最后有个s)mysql> show databases; 3、删除数据库 命令:drop database <数据库名> 例如:删除名为xhkdb的数据库mysql> drop database xhkdb; 4、连接数据库 命令:use <数据库名> 例如:如果xhkdb数据库存在,尝试存取它:mysql> use xhkdb; 屏幕提示:Database changed 5、当前选择(连接)的数据库mysql> select database(); 6、当前数据库包含的表信息:mysql> show tables; (注意:最后有个s) 三、表操作,操作之前应连接某个数据库 1、建表 命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]); mysql> create table MyClass( > id int(4) not null primary key auto_increment, > name char(20) not null, > sex int(4) not null default ''0'', > degree double(16,2)); 2、获取表结构 命令:desc 表名,或者show columns from 表名 mysql>DESCRIBE MyClass mysql> desc MyClass;
跨服务器的触发器书写方法 引言:电子病历的病人的基本信息,来源于HIS系统的病人基本信息。两个数据库的信息交互,通过HIS表的触发器来实现。但是伴随着业务的增长,HIS数据库和病历数据库可能会部署到不同的服务器上,因此,两个库之间的触发器,必须能满足跨服务器的访问。 书写跨服务器的数据访问,必须要对两台服务器进行相关配置和建立远程服务连接(分布事务),具体实施步骤如下: 一、启用远程分布式服务 1、打开控制面板,找到管理工具,双击打开,如图: 启动“Distributed Transaction Coordinator”服务,见下图:
2、设置MSDTC选项 在管理工具中,找到组建服务,双击打开,找到“我的电脑”,鼠标右键点击,选择“属性”如图: 打开窗口后,选择选择“MSDTC”选项卡 点击“安全性配置”按钮 网络DTC访问勾选上,允许远程客户端,允许远程管理,允许入站, 允许出站,不要求身份验证勾选上 注意: 1、以上步骤需要两台服务器都必须配置。 2、启动分布式服务后还要打开远程服务器以及本地服务器135端口,因为远程分布式服务需要该端口通讯。启用通讯端口方法看下节。 二、启用通讯端口
1、打开控制面板,找到管理工具,双击打开,如图: 2、启用防火墙,点击“例外”,点击“添加程序”。 找到路径下:C:\WINDOWS\system32\msdtc.exe
选中:msdtc.exe 点击添加端口,如图增加135端口。
注意: 1、以上步骤需要两台服务器都必须配置。 三、建立两台服务器的连接 1、建立互访连接 exec sp_addlinkedserver 'emr_server', '', 'SQLOLEDB', '192.168.0.10' ---创建服务器连接 exec sp_addlinkedsrvlogin ' emr_server ', 'false',null, 'sa', '146-164-152-' --创建登陆sp_dropserver 'his ','droplogins'--删除服务器连接和登陆,再也不使用了,可以删除。 '192.168.0.10' :目标服务器,即需要连接的远程服务器名称或IP,即电子病历服务器的名称或IP 2、书写触发器
面向对象数据库系统(Object Oriented Data Base System,简称OODBS)是数据库技术与面向对象程序设计方法相结合的产物。 对于OO数据模型和面向对象数据库系统的研究主要体现在:研究以关系数据库和SQL为基础的扩展关系模型;以面向对象的程序设计语言为基础,研究持久的程序设计语言,支持OO模型;建立新的面向对象数据库系统,支持OO数据模型。 面向对象程序设计方法是一种支持模块化设计和软件重用的实际可行的编程方法。它把程序设计的主要活动集中在建立对象和对象之间的联系(或通信)上,从而完成所需要的计算。一个面向对象的程序就是相互联系(或通信)的对象集合。面向对象程序设计的基本思想是封装和可扩展性。 面向对象数据库系统支持面向对象数据模型(以下简称OO模型)。即面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者;而一个对象库是由一个OO模型所定义的对象的集合体。 一个OO模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。一系列面向对象核心概念构成了OO模型的基础。概括起来,OO模型的核心概念有如下一些: (1)对象(Object)与对象标识OID(Object IDentifier) 现实世界的任一实体都被统一地模型化为一个对象,每个对象有一个唯一的标识,称为对象标识(OID)。 (2)封装(Encapsulation) 每一个对象是其状态与行为的封装,其中状态是该对象一系列属性(Attribute)值的集合,而行为是在对象状态上操作的集合,操作也称为方法(Method)。 (3)类(C1ass) 共享同样属性和方法集的所有对象构成了一个对象类(简称类),一个对象是某一类的一个实例(instance)。 (4)类层次(结构) 在一个面向对象数据库模式中,可以定义一个类(如C1)的子类(如C2),类Cl 称为类C2的超类(或父类)。子类(如C2)还可以再定义子类(如C3)。这样,面向对象数据库模式的一组类形成一个有限的层次结构,称为类层次。 (5)消息(Message) 由于对象是封装的,对象与外部的通信一般只能通过显式的消息传递,即消息从外部传送给对象,存取和调用对象中的属性和方法,在内部执行所要求的操作,操作的结果仍以消息的形式返回。 OODB语言用于描述面向对象数据库模式,说明并操纵类定义与对象实例。OODB语言主要包括对象定义语言(ODL)和对象操纵语言(OML),对象操纵语言中一个重要子集是对象查询语言(OQL)。OODB语言一般应具备下述功能: (1)类的定义与操纵 面向对象数据库语言可以操纵类,包括定义、生成、存取、修改与撤销类。其中类的定义包括定义类的属性、操作特征、继承性与约束等。 (2)操作/方法的定义 面向对象数据库语言可用于对象操作/方法的定义与实现。在操作实现中,语言的命令
C# SQLite数据库访问封装类 C# 异常处理(Catch Throw)IL分析在客户端配置文件
本文由jsj05527贡献 偶得一个绝佳C#数据库封装类,与大家分享一下! - 楚广明的博客 - 博客园 楚广明的博客 教育不是灌溉,是点燃火焰 首页 联系 管理 偶得一个绝佳C#数据库封装类,与大家分享一下! 1using System; 2using System.Collections.Generic; 3using System.Text; 4using System.Data; 5using System.Configuration; 6using System.Data.Common; 7using System.Data.SqlClient; 8using System.Data.OleDb; 9using System.Data.Odbc; 10using System.Data.OracleClient; 11using System.IO; 12 13namespace BinaryIntellect.DataAccess 14{ 15 public class DatabaseHelper:IDisposable 16 { 17 private string strConnectionString; 18 private DbConnection objConnection; 19 private DbCommand objCommand; 20 private DbProviderFactory objFactory = null; 21 private bool boolHandleErrors; 22 private string strLastError; 23 private bool boolLogError; 24 private string strLogFile; 25 26 public DatabaseHelper(string connectionstring,Providers provider) 27 { 28 strConnectionString = connectionstring; 29 switch (provider) 30 { 31 case Providers.SqlServer: 32 objFactory = SqlClientFactory.Instance; 33 break; 34 case Providers.OleDb: 35 objFactory = OleDbFactory.Instance; 36 break; 37 case Providers.Oracle: 38 objFactory = OracleClientFactory.Instance; 39 break; 40 case Providers.ODBC: 41 objFactory = OdbcFactory.Instance; 42 break; 43 case Providers.ConfigDefined: 44 string providername=ConfigurationManager.ConnectionStrings["connec
注:1Mysqldump是mysql数据库的自带备份函数。借助此命令可使备份变得简单。 2斜体部分是可以重命名的部分。 1.mysqldump的几种常用方法: (1)导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbname.sql (2)导出数据库结构(不含数据) mysqldump -u username -p -d dbname > dbname.sql (3)导出数据库中的某张数据表(包含数据) mysqldump -u username -p dbname tablename > tablename.sql (4)导出数据库中的某张数据表的表结构(不含数据) mysqldump -u username -p -d dbname tablename > t ablename.sql 2.mysqldump常用实例: mysqldump常用于数据库的备份与还原,在备份的过程中我们可以根据自己的实际情况添加以上任何参数,假设有数据库test_db,执行以下命令,即可完成对整个数据库的备份: mysqldump -u root -p test_db > test_db.sql 如要对数据进行还原,可执行如下命令: mysql -u username -p test_db < test_db.sql 还原数据库操作还可以使用以下方法: mysql> sourcetest_db.sql dos命令行下连接和操作MySQL数据库 一、连接MYSQL。 格式: mysql -h主机地址 -u用户名-p用户密码 1、例1:连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql> 2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户 名为root,密码为abcd123。则键入以下命令: mysql -h110.110.110.110 -uroot -pabcd123 (注:u与root可以不用加空格,其它也一样)
跨服务器跨网段同步复制 注意:被同步的表必须有主键,否则无法同步。对数据库进行操作时需要登录服务器,在服务器本地进行操作,远程对数据库进行操作不能完成所有的步骤 准备工作: 1.将发布数据库完整备份到订阅服务器上,并在订阅服务器上还原(可只有数据库结构,不需要数据) 2.在发布数据库和订阅数据库上创建相同的账号和密码(replicationuser/rep5689#$%btbo)给replicationuser 账号sysadmin ,先不要映射任何数据库 3.更改安全对象所有权(发布数据库和订阅数据库) ALTER AUTHORIZATION ON DATABASE::[数据库名] TO [ReplicationUser] 4.在发布服务器上创建用户,并放入到管理员组中。(barefootadmin/foot5689#$%btbo),然后将发布服务的SQL SERVER代理服务的账号修改为barefootadmin ,重新启动代理服务 5.使用barefootadmin账号登陆到发布服务器上,在D盘创建文件夹(D:\RepIData),并共享文件夹D:\RepIData ,共享用户为barefootadmin(复制共享文件夹的网络文件名)(若发布服务器之前有过发布,则不需要创建文件夹) 6.打开订阅服务器和发布服务器的SQL SERVER 配置管理工具。在SQL Native Client 10.0 配置(32位)和Native Client 10.0 配置的别名中分别加上对方的机器名(别名:机器名;端口号:80;服务器:192.168.1.1;协议:TCP/IP) 创建发布: 6.登录发布服务器,登录数据库实例,复制--本地发布--新建发布 7.分发服务器(“机器名”将充当自己的分发服务器;SQL Server 将创建分发数据库和日志(W)) 8.启动Sql Server 代理(是,将Sql server代理服务器配置为自动启动) 9.快照文件夹(填写复制共享文件夹的网络文件名) 10 发布数据库(选择需要同步的数据库) 11.发布类型(事务发布) 12.项目(选择表和字段) 13.筛选表行 14.快照代理(立即创建快照并合快照保持可用状态,以初始化订阅) 15.代理安全性—安全设置 16.快照代理安全性:在SQL SERVER 代理服务账号下运行(这不是我们推荐的最佳安全配置);通过SQL SERVER登录(replicationuser) 17.向导操作(创建发布) 18.完成该向导(发布名称命名)--完成 19.复制—本地发布--启动复制监视器 创建订阅: 1.登录订阅服务器,复制—本地订阅—新建订阅 2.发布(查找SQLSERVER 发布服务器) 3.连接到服务器(服务器名称:发布服务器的机器名;身份验证:SQLSERVER 身份验证;登录名:replicationuser)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Configuration; namespace https://www.doczj.com/doc/8b3000051.html,ponents.DBUtility { public class ConnetionLine { public static SqlHelper SystemManageCn { get { try { string connectionString = ConfigurationManager.ConnectionStrings["SystemManageConnectionString"].ConnectionString; SqlHelper sqlHelper = GetConnetion(connectionString); return sqlHelper; } catch (Exception ex) { throw ex; } } } public static SqlHelper JIEJINERPReportCn { get { try {
string connectionString = ConfigurationManager.ConnectionStrings["JIEJINERPReportConnectionString"].ConnectionString ; SqlHelper sqlHelper = GetConnetion(connectionString); return sqlHelper; } catch (Exception ex) { throw ex; } } } private static SqlHelper GetConnetion(String connectionString) { try { int stratNo = connectionString.IndexOf("Server") + 7; int endNo = connectionString.IndexOf(";"); string serverIP = connectionString.Substring(stratNo, endNo - stratNo); //string pingrst = CmdPing(serverIP); string pingrst = "连接"; if (pingrst != "连接") { throw new Exception(pingrst + "\n" + "無法連線到服務器,請檢查您的網絡連接狀態!!"); } SqlHelper cn = new SqlHelper(connectionString); return cn; } catch (Exception ex) { throw ex; } }
如何实现远程连接数据库服务器 (SQL Server 2005 + Visual Studio 2005) (1)配置服务器端 打开“SQL Server 外围应用配置器”--》选择“服务和连接的外围应用配置器”–》选择“服务器端(SQLEXPRESS)”--》点击“远程连接”,选择“本地连接和远程连接”,选择“同时使用TCP/IP和Named pipes”; 启动“SQL Server Browser”,选择自动;
(2)进行服务器端网络配置 打开“SQL Server Configuration Manager”--》点击“SQL Server 2005网络
配置”–》点击“SQLEXPRESS的协议”--》确保“Named Pipes”和“TCP/IP”都启用–》右键点击“TCP/IP ”选择属性,选择“IP地址”,设置“TCP动态端口”为空,设置“TCP端口”为1433;
(3)进行客户端网络配置 打开“SQL Server Configuration Manager”--》点击“SQL Native Client配置” –》点击“客户端协议”--》确保“Named Pipes”和“TCP/IP”都启用–》右键点击“TCP/IP ”选择属性,选择“协议”,确认“默认端口”为1433;
(4)设置SQL Server服务器实例 右键点击服务器实例–》选择“属性”–》选择“连接”–》在“允许远程连接到此服务器”前打勾;
(5)防火墙设置 对系统中使用的防火墙(包括ESET和windows自带的防火墙),选择关闭,或者设置例外(允许某个程序或者某个端口) (6)检查客户端和服务器端是否连通,端口是否打开 telnet ip 1433 //ip即为服务器的IP地址,1433是sql server的默认端口,这
链接服务器,不同服务器数据库之间的数据操作 1、--创建链接服务器 EXEC sp_addlinkedserver‘链接名’,'','SQLOLEDB','服务器名或地址,端口号' EXEC sp_addlinkedsrvlogin '链接名', 'false ',null,'用户名', '密码' 2、启动两台服务器的MSDTC服务 MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(Distributed Transaction Coordinator)服务。 3、打开双方的135端口 MSDTC服务依赖于RPC(Remote Procedure Call (RPC))服务,RPC使用135端口,保证RPC服务启动,如果服务器有防火墙,保证135端口不被防火墙挡住。 使用“telnet IP 135”命令测试对方端口是否对外开放。也可用端口扫描软件(比如Advanced Port Scanner)扫描端口以判断端口是否开放 4、解除SQL阻止(sqlserver 2005情况) SQL Server 阻止了对组 件…Ad Hoc Distributed Queries?的STA TEMENT?OpenRowset/OpenDatasource?的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使 用sp_configure 启用…Ad Hoc Distributed Queries?。有关启用…Ad Hoc Distributed Queries?的详细信息,请参阅SQL Server 联机丛书中的“外围应用配置器”。 因为SQL2005默认是没有开启?Ad Hoc Distributed Queries?组件,开启方法如下 execsp_configure 'show advanced options',1 reconfigure execsp_configure 'Ad Hoc Distributed Queries',1 reconfigure 关闭Ad Hoc Distributed Queries: exec sp_configure 'Ad Hoc Distributed Queries', 0 reconfigure exec sp_configure 'show advanced options', 0 reconfigure 5、可以查询了 select*from连接名.数据库名.dbo.表名