该类库是我自己总结测试,并且一直在用的,里面有各种对数据库的操作函数,创建数据库,创建表,写入参数等等。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Data.Common;
using System.Configuration;
namespace SQLTest
{
class SqlServrDbase
{
private static string DB_Source = "";
//服务器名Server或Data Source,数据库名 Database或initial catalog,设置为Windows登录,需使用Integrated Security = TRUE(或者:SSPI)来进行登录
public string connString = @"Data Source='" + DB_Source + "';Initial Catalog=;Integrated Security=SSPI;";
public string sql = "";
public SqlConnection conn = null;
private SqlCommand cmd = null;
///
/// 构造方法
///
///
public SqlServrDbase(string source)
{
DB_Source = source;
connString = @"Data Source='" + DB_Source + "';Initial Catalog=;Integrated Security=SSPI;";
}
// 执行对数据表中数据的查询操作
public DataSet GetSysDatabases()
{
sql = "SELECT Name FROM Master..SysDatabases ORDER BY Name";//获取所有数据库名:
conn = new SqlConnection(connString);
DataSet ds = new DataSet();
try
{
conn.Open(); //打开数据库
SqlDataAdapter adp = new SqlDataAdapter(sql, conn);
adp.Fill(ds);
}
catch (SqlException ae)
{
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close(); //关闭数据库
}
return ds;
}
/// 返回DataSet,可以填充DataView等
public DataSet GetDataSet(string sql)
{
SqlConnection Conn = new SqlConnection(connString);
try
{
DataSet ds = new DataSet();
Conn.Open();
SqlDataAdapter sqlDa = new SqlDataAdapter(sql, Conn);
sqlDa.Fill(ds);
return ds;
}
finally
{
Conn.Close();
Conn.Dispose();
}
}
/// 按sql语句返回DataTable
public DataTable GetDataTable(string sql)
{
SqlConnection Conn = new SqlConnection(connString);
Conn.Open();
DataSet ds = new DataSet();
try
{
ds = GetDataSet(sql);
return ds.Tables[0];
}
finally
{
ds.Dispose();
Conn.Close();
Conn.Dispose();
}
}
public int ExcuteSQL(string sql)
{
int i = 0;
SqlConnection Conn = new SqlConnection(connString);
if (Conn.State != ConnectionState.Open)
{
Conn.Open();
}
SqlCommand cmd = new SqlCommand(sql, Conn);
try
{
//判断是否开启事务
if (sql != null)
{
i = cmd.ExecuteNonQuery();
}
}
finally
{
Conn.Close();
Conn.Dispose();
}
return i;
}
public void ExcuteNonSQL(string sql)
{
int i = 0;
SqlConnection Conn = new SqlConnection(connString);
if (Conn.State != ConnectionState.Open)
{
Conn.Open();
}
SqlCommand cmd = new SqlCommand(sql, Conn);
try
{
//判断是否开启事务
if (sql != null)
{
i = cmd.ExecuteNonQuery();
}
}
finally
{
Conn.Close();
Conn.Dispose();
}
}
#region IsDBExist-判断数据库是否存在
///
/// 判断数据库是否存在
///
/// 数据库的名称
///
public Boolean IsDBExist(string db)
{
string sql = " select * from master.dbo.sysdatabases where name " + "= '" + db + "'";
DataTable dt = GetDataTable(sql);
if (dt.Rows.Count == 0)
{
return false;
}
else
{
return true;
}
}
#endregion
#region CreateDataBase-创建数据库
///
/// 创建数据库
///
/// 数据库名称
/// 数据库文件路径
public void CreateDataBase(string DB_NAME, string DB_PATH)
{
//符号变量,判断数据库是否存在
Boolean flag = IsDBExist(DB_NAME);
//如果数据库存在,则抛出
if (flag == true)
{
//throw new Exception("数据库已经存在!");
}
else
{
try
{
//数据库不存在,创建数据库
conn = new SqlConnection(connString);
if (conn.State != ConnectionState.Open)
conn.Open();
string sql = "if not exists(select * From master.dbo.sysdatabases where name='" + DB_NAME + "')" +
"CREATE DATABASE " + DB_NAME + " ON PRIMARY" + "(name=" + DB_NAME + ",filename = '" + DB_PATH + DB_NAME + ".mdf', size=5mb," +
"maxsize=100mb,filegrowth=10%)log on" + "(name=" + DB_NAME + "_log,filename='" + DB_PATH + DB_NAME + "_log.ldf',size=2mb," + "maxsize=20MB,filegrowth=1mb)";
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
catch (SqlException sqle)
{
throw new Exception(sqle.Message.ToString());
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
conn.Dispose();
}
}
}
#endregion
#region IsTableExist-判断数据库表是否存在
///
/// 判断数据库表是否存在
///
/// 数据库
/// 数据库表名
///
public Boolean IsTableExist(string db, string tb)
{
string sql = "use " + db + " select * from sysobjects where id = object_id('" + tb + "') and type ='U