用于SqlServer数据库的SqlServerHelper.cs类,及其调用例子
2014-03-20 22:57
204 查看
用于SqlServer数据库的SqlServerHelper.cs类,及其调用例子
2011-10-13 14:57:05 我来说两句
收藏
我要投稿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace JonseTest
{
public class SqlServerHelper
{
public static string ConnString = string.Empty;
public static string Conn_Config_Str_Name = string.Empty;
public static string Conn_Server = string.Empty;
public static string Conn_DBName = string.Empty;
public static string Conn_Uid = string.Empty;
public static string Conn_Pwd = string.Empty;
private static string _ConnString
{
get
{
if (!string.IsNullOrEmpty(ConnString))
return ConnString;
object oConn = ConfigurationManager.ConnectionStrings[Conn_Config_Str_Name];
if (oConn != null && oConn.ToString() != "")
return oConn.ToString();
return string.Format(@"server={0};database={1};uid={2};password={3}", Conn_Server, Conn_DBName, Conn_Uid, Conn_Pwd);
}
}
// 取datatable
public static DataTable GetDataTable(out string sError, string sSQL)
{
DataTable dt = null;
sError = string.Empty;
try
{
SqlConnection conn = new SqlConnection(_ConnString);
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = sSQL;
SqlDataAdapter dapter = new SqlDataAdapter(comm);
dt = new DataTable();
dapter.Fill(dt);
}
catch (Exception ex)
{
sError = ex.Message;
}
return dt;
}
// 取dataset
public static DataSet GetDataSet(out string sError, string sSQL)
{
DataSet ds = null;
sError = string.Empty;
try
{
SqlConnection conn = new SqlConnection(_ConnString);
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = sSQL;
SqlDataAdapter dapter = new SqlDataAdapter(comm);
ds = new DataSet();
dapter.Fill(ds);
}
catch (Exception ex)
{
sError = ex.Message;
}
return ds;
}
// 取某个单一的元素
public static object GetSingle(out string sError, string sSQL)
{
DataTable dt = GetDataTable(out sError, sSQL);
if (dt != null && dt.Rows.Count > 0)
{
return dt.Rows[0][0];
}
return null;
}
// 取最大的ID
public static Int32 GetMaxID(out string sError, string sKeyField, string sTableName)
{
DataTable dt = GetDataTable(out sError, "select isnull(max([" + sKeyField + "]),0) as MaxID from [" + sTableName + "]");
if (dt != null && dt.Rows.Count > 0)
{
return Convert.ToInt32(dt.Rows[0][0].ToString());
}
return 0;
}
// 执行 insert,update,delete 动作,也可以使用事务
public static bool UpdateData(out string sError, string sSQL, bool bUseTransaction=false)
{
int iResult = 0;
sError = string.Empty;
if (!bUseTransaction)
{
try
{
SqlConnection conn = new SqlConnection(_ConnString);
if (conn.State != ConnectionState.Open)
conn.Open();
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = sSQL;
iResult = comm.ExecuteNonQuery();
}
catch (Exception ex)
{
sError = ex.Message;
iResult = -1;
}
}
else // 使用事务
{
SqlTransaction trans = null;
try
{
SqlConnection conn = new SqlConnection(_ConnString);
if (conn.State != ConnectionState.Open)
conn.Open();
trans = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sSQL;
cmd.Transaction = trans;
iResult = cmd.ExecuteNonQuery();
trans.Commit();
}
catch (Exception ex)
{
sError = ex.Message;
iResult = -1;
trans.Rollback();
}
}
return iResult > 0;
}
}
}
调用方法:
一,先设置数据库连接的信息
//SqlServerHelper.ConnString = @"server=电脑名 或 电脑IP;database=数据库名;uid=数据库登录名;password=数据库登录密码";
SqlServerHelper.Conn_Config_Str_Name = @"ConnString"; // ConnString的信息在 App.Config里设置
//SqlServerHelper.Conn_Server = @"电脑名 或 电脑IP";
//SqlServerHelper.Conn_DBName = "数据库名";
//SqlServerHelper.Conn_Uid = "数据库登录名";
//SqlServerHelper.Conn_Pwd = "数据库登录密码";
二, App.Config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="ConnString" connectionString="server=电脑名 或 电脑IP;database=数据库名;uid=数据库登录名;password=数据库登录密码" />
</connectionStrings>
</configuration>
三, 读取 datatable / dataset 数据
private void InitGrid()
{
string sSQL = "select * from test";
string sError = string.Empty;
DataTable dt = SqlServerHelper.GetDataTable(out sError, sSQL);
//DataSet dt = SqlServerHelper.GetDataSet(out sError, sSQL);
dataGridView1.DataSource = dt;
if (!string.IsNullOrEmpty(sError))
Common.DisplayMsg(this.Text, sError);
}
四,插入,修改,删除 数据 (都调用SqlServerHelper.UpdateData方法)
// 插入
string sError = string.Empty;
int iMaxID = SqlServerHelper.GetMaxID(out sError, "id", "test") + 1;
string sSql = "insert into test select " + iMaxID + ",'name" + iMaxID + "','remark" + iMaxID + "'";
sError = string.Empty;
bool bResult = SqlServerHelper.UpdateData(out sError, sSql, true);
if (bResult)
Common.DisplayMsg(this.Text, "插入成功");
else
Common.DisplayMsg(this.Text, sError);
InitGrid();
// 修改
sError = string.Empty;
int iMaxID = SqlServerHelper.GetMaxID(out sError, "id", "test");
string sSql = "update test set name='name_jonse',remark='remark_jonse' where id=" + iMaxID;
sError = string.Empty;
bool bResult = SqlServerHelper.UpdateData(out sError, sSql, true);
if (bResult)
Common.DisplayMsg(this.Text, "修改成功");
else
Common.DisplayMsg(this.Text, sError);
InitGrid();
// 删除
sError = string.Empty;
int iMaxID = SqlServerHelper.GetMaxID(out sError, "id", "test");
string sSql = "delete from test where id=" + iMaxID;
sError = string.Empty;
bool bResult = SqlServerHelper.UpdateData(out sError, sSql);
if (bResult)
Common.DisplayMsg(this.Text, "删除成功");
else
Common.DisplayMsg(this.Text, sError);
InitGrid();
五,其它
public static void DisplayMsg(string sCaption, string sMsg)
{
sMsg = sMsg.TrimEnd('!').TrimEnd('!') + " !";
MessageBox.Show(sMsg, sCaption);
}
摘自:keenweiwei的专栏
2011-10-13 14:57:05 我来说两句
收藏
我要投稿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace JonseTest
{
public class SqlServerHelper
{
public static string ConnString = string.Empty;
public static string Conn_Config_Str_Name = string.Empty;
public static string Conn_Server = string.Empty;
public static string Conn_DBName = string.Empty;
public static string Conn_Uid = string.Empty;
public static string Conn_Pwd = string.Empty;
private static string _ConnString
{
get
{
if (!string.IsNullOrEmpty(ConnString))
return ConnString;
object oConn = ConfigurationManager.ConnectionStrings[Conn_Config_Str_Name];
if (oConn != null && oConn.ToString() != "")
return oConn.ToString();
return string.Format(@"server={0};database={1};uid={2};password={3}", Conn_Server, Conn_DBName, Conn_Uid, Conn_Pwd);
}
}
// 取datatable
public static DataTable GetDataTable(out string sError, string sSQL)
{
DataTable dt = null;
sError = string.Empty;
try
{
SqlConnection conn = new SqlConnection(_ConnString);
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = sSQL;
SqlDataAdapter dapter = new SqlDataAdapter(comm);
dt = new DataTable();
dapter.Fill(dt);
}
catch (Exception ex)
{
sError = ex.Message;
}
return dt;
}
// 取dataset
public static DataSet GetDataSet(out string sError, string sSQL)
{
DataSet ds = null;
sError = string.Empty;
try
{
SqlConnection conn = new SqlConnection(_ConnString);
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = sSQL;
SqlDataAdapter dapter = new SqlDataAdapter(comm);
ds = new DataSet();
dapter.Fill(ds);
}
catch (Exception ex)
{
sError = ex.Message;
}
return ds;
}
// 取某个单一的元素
public static object GetSingle(out string sError, string sSQL)
{
DataTable dt = GetDataTable(out sError, sSQL);
if (dt != null && dt.Rows.Count > 0)
{
return dt.Rows[0][0];
}
return null;
}
// 取最大的ID
public static Int32 GetMaxID(out string sError, string sKeyField, string sTableName)
{
DataTable dt = GetDataTable(out sError, "select isnull(max([" + sKeyField + "]),0) as MaxID from [" + sTableName + "]");
if (dt != null && dt.Rows.Count > 0)
{
return Convert.ToInt32(dt.Rows[0][0].ToString());
}
return 0;
}
// 执行 insert,update,delete 动作,也可以使用事务
public static bool UpdateData(out string sError, string sSQL, bool bUseTransaction=false)
{
int iResult = 0;
sError = string.Empty;
if (!bUseTransaction)
{
try
{
SqlConnection conn = new SqlConnection(_ConnString);
if (conn.State != ConnectionState.Open)
conn.Open();
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = sSQL;
iResult = comm.ExecuteNonQuery();
}
catch (Exception ex)
{
sError = ex.Message;
iResult = -1;
}
}
else // 使用事务
{
SqlTransaction trans = null;
try
{
SqlConnection conn = new SqlConnection(_ConnString);
if (conn.State != ConnectionState.Open)
conn.Open();
trans = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sSQL;
cmd.Transaction = trans;
iResult = cmd.ExecuteNonQuery();
trans.Commit();
}
catch (Exception ex)
{
sError = ex.Message;
iResult = -1;
trans.Rollback();
}
}
return iResult > 0;
}
}
}
调用方法:
一,先设置数据库连接的信息
//SqlServerHelper.ConnString = @"server=电脑名 或 电脑IP;database=数据库名;uid=数据库登录名;password=数据库登录密码";
SqlServerHelper.Conn_Config_Str_Name = @"ConnString"; // ConnString的信息在 App.Config里设置
//SqlServerHelper.Conn_Server = @"电脑名 或 电脑IP";
//SqlServerHelper.Conn_DBName = "数据库名";
//SqlServerHelper.Conn_Uid = "数据库登录名";
//SqlServerHelper.Conn_Pwd = "数据库登录密码";
二, App.Config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="ConnString" connectionString="server=电脑名 或 电脑IP;database=数据库名;uid=数据库登录名;password=数据库登录密码" />
</connectionStrings>
</configuration>
三, 读取 datatable / dataset 数据
private void InitGrid()
{
string sSQL = "select * from test";
string sError = string.Empty;
DataTable dt = SqlServerHelper.GetDataTable(out sError, sSQL);
//DataSet dt = SqlServerHelper.GetDataSet(out sError, sSQL);
dataGridView1.DataSource = dt;
if (!string.IsNullOrEmpty(sError))
Common.DisplayMsg(this.Text, sError);
}
四,插入,修改,删除 数据 (都调用SqlServerHelper.UpdateData方法)
// 插入
string sError = string.Empty;
int iMaxID = SqlServerHelper.GetMaxID(out sError, "id", "test") + 1;
string sSql = "insert into test select " + iMaxID + ",'name" + iMaxID + "','remark" + iMaxID + "'";
sError = string.Empty;
bool bResult = SqlServerHelper.UpdateData(out sError, sSql, true);
if (bResult)
Common.DisplayMsg(this.Text, "插入成功");
else
Common.DisplayMsg(this.Text, sError);
InitGrid();
// 修改
sError = string.Empty;
int iMaxID = SqlServerHelper.GetMaxID(out sError, "id", "test");
string sSql = "update test set name='name_jonse',remark='remark_jonse' where id=" + iMaxID;
sError = string.Empty;
bool bResult = SqlServerHelper.UpdateData(out sError, sSql, true);
if (bResult)
Common.DisplayMsg(this.Text, "修改成功");
else
Common.DisplayMsg(this.Text, sError);
InitGrid();
// 删除
sError = string.Empty;
int iMaxID = SqlServerHelper.GetMaxID(out sError, "id", "test");
string sSql = "delete from test where id=" + iMaxID;
sError = string.Empty;
bool bResult = SqlServerHelper.UpdateData(out sError, sSql);
if (bResult)
Common.DisplayMsg(this.Text, "删除成功");
else
Common.DisplayMsg(this.Text, sError);
InitGrid();
五,其它
public static void DisplayMsg(string sCaption, string sMsg)
{
sMsg = sMsg.TrimEnd('!').TrimEnd('!') + " !";
MessageBox.Show(sMsg, sCaption);
}
摘自:keenweiwei的专栏
相关文章推荐
- 用于SqlServer数据库的SqlServerHelper.cs类,及其调用例子
- 用于SqlServer数据库的SqlServerHelper.cs类及其调用例子
- 用于SqlServer数据库的SqlServerHelper.cs类,及其调用例子
- Lea指令计算地址(用于四则混合运算),附上一个函数调用例子及其反汇编代码,很清楚
- 用于MySql数据库的MySqlHelper.cs类,及其调用例子
- 交叉验证及其用于参数选择、模型选择、特征选择的例子
- scikit-learn中交叉验证及其用于参数选择、模型选择、特征选择的例子
- 【scikit-learn】交叉验证及其用于参数选择、模型选择、特征选择的例子
- 【scikit-learn】交叉验证及其用于参数选择、模型选择、特征选择的例子
- 【scikit-learn】交叉验证及其用于参数选择、模型选择、特征选择的例子
- ANSI C中的细节问题之四:函数及其调用
- 受限IP调用webservice方案 webservice远程测试显示 “测试窗体只能用于来自本地计算机的请求” webservice注释
- Java调用LDAP认证的例子
- OC多文件开发简单例子实现(重点:self在对象方法中调用其他对象方法的3种方法)
- Go语言调用dll动态链接库的简单例子
- 关于汇编程序调用各种C函数的例子
- oracle包的简单创建和调用-例子
- Linux平台使用JNI的例子 Java调用so
- utf-8编码用于asp 出现乱码的问题--从数据库调用的是乱码--gb2312转换utf-8
- 调用mybatis generator已经生成好的dao来查询例子