zoukankan
html css js c++ java
DataHelper
1.建一个通用的处理数据的类
using
System;
using
System.Data;
using
System.Data.SqlClient;
using
System.Text;
namespace
Document
{
/**/
///
<summary>
///
Summary description for DataHelper.
///
</summary>
public
class
DataHelper
{
public
DataHelper()
{
//
//
TODO: Add constructor logic here
//
}
public
static
string
ConnectionString
=
System.Configuration.ConfigurationSettings.AppSettings[
"
ConnectionString
"
];
GetDataSet
#region
GetDataSet
public
static
DataSet GetDataSet(
string
sql)
{
SqlDataAdapter sda
=
new
SqlDataAdapter(sql,ConnectionString);
DataSet ds
=
new
DataSet();
sda.Fill(ds);
return
ds;
}
#endregion
ExecCommand
#region
ExecCommand
public
static
int
ExecCommand(SqlCommand sqlcom)
{
SqlConnection conn
=
new
SqlConnection(ConnectionString);
sqlcom.Connection
=
conn;
conn.Open();
try
{
int
rtn
=
sqlcom.ExecuteNonQuery();
return
rtn;
}
catch
(Exception ex)
{
throw
ex;
}
finally
{
conn.Close();
}
return
0
;
}
public
static
int
ExecCommand(
string
sql)
{
if
(sql.EndsWith(
"
,
"
)) sql
=
sql.Substring(
0
,sql.Length
-
1
);
SqlCommand sqlcom
=
new
SqlCommand(sql);
return
ExecCommand(sqlcom);
}
#endregion
ExecuteScalar
#region
ExecuteScalar
public
static
object
ExecuteScalar(
string
sql)
{
SqlConnection conn
=
new
SqlConnection(ConnectionString);
SqlCommand sqlcom
=
new
SqlCommand(sql,conn);
conn.Open();
try
{
object
rtn
=
sqlcom.ExecuteScalar ();
return
rtn;
}
catch
(Exception ex)
{
throw
ex;
}
finally
{
conn.Close();
}
return
null
;
}
#endregion
ExecSPCommand
#region
ExecSPCommand
public
static
void
ExecSPCommand(
string
sql,System.Data.IDataParameter[] paramers)
{
SqlConnection conn
=
new
SqlConnection(ConnectionString);
SqlCommand sqlcom
=
new
SqlCommand(sql,conn);
sqlcom.CommandType
=
CommandType.StoredProcedure ;
foreach
(System.Data.IDataParameter paramer
in
paramers)
{
sqlcom.Parameters.Add(paramer);
}
conn.Open();
try
{
sqlcom.ExecuteNonQuery();
}
catch
(Exception ex)
{
string
s
=
ex.Message ;
}
finally
{
conn.Close();
}
}
#endregion
ExecSPDataSet
#region
ExecSPDataSet
public
static
DataSet ExecSPDataSet(
string
sql,System.Data.IDataParameter[] paramers)
{
SqlConnection conn
=
new
SqlConnection(ConnectionString);
SqlCommand sqlcom
=
new
SqlCommand(sql,conn);
sqlcom.CommandType
=
CommandType.StoredProcedure ;
foreach
(System.Data.IDataParameter paramer
in
paramers)
{
sqlcom.Parameters.Add(paramer);
}
conn.Open();
SqlDataAdapter da
=
new
SqlDataAdapter();
da.SelectCommand
=
sqlcom;
DataSet ds
=
new
DataSet();
da.Fill(ds);
conn.Close();
return
ds;
}
#endregion
DbType
#region
DbType
private
static
System.Data.DbType GetDbType(Type type)
{
DbType result
=
DbType.String;
if
( type.Equals(
typeof
(
int
))
||
type.IsEnum)
result
=
DbType.Int32;
else
if
( type.Equals(
typeof
(
long
)))
result
=
DbType.Int32;
else
if
( type.Equals(
typeof
(
double
))
||
type.Equals(
typeof
(Double)))
result
=
DbType.Decimal;
else
if
( type.Equals(
typeof
(DateTime)))
result
=
DbType.DateTime;
else
if
( type.Equals(
typeof
(
bool
)))
result
=
DbType.Boolean;
else
if
( type.Equals(
typeof
(
string
) ) )
result
=
DbType.String;
else
if
( type.Equals(
typeof
(
decimal
)))
result
=
DbType.Decimal;
else
if
( type.Equals(
typeof
(
byte
[])))
result
=
DbType.Binary;
else
if
( type.Equals(
typeof
(Guid)))
result
=
DbType.Guid;
return
result;
}
#endregion
UpdateTable
#region
UpdateTable
public
static
void
UpdateTable(DataTable dt,
string
TableName,
string
KeyName)
{
foreach
(DataRow dr
in
dt.Rows)
{
updateRow(dr,TableName,KeyName);
}
}
#endregion
InsertTable
#region
InsertTable
//
用于主键是数据库表名+ID类型的
public
static
void
InsertTable(DataTable dt)
{
string
TableName
=
"
[
"
+
dt.TableName
+
"
]
"
;
string
KeyName
=
dt.TableName
+
"
ID
"
;
foreach
(DataRow dr
in
dt.Rows)
{
insertRow(dr,TableName,KeyName);
}
}
//
用于主键是任意类型的
public
static
void
InsertTable(DataTable dt,
string
KeyName)
{
string
TableName
=
"
[
"
+
dt.TableName
+
"
]
"
;
foreach
(DataRow dr
in
dt.Rows)
{
insertRow(dr,TableName,KeyName);
}
}
#endregion
DeleteTable
#region
DeleteTable
public
static
void
DeleteTable(DataTable dt,
string
KeyName)
{
string
TableName
=
"
[
"
+
dt.TableName
+
"
]
"
;
foreach
(DataRow dr
in
dt.Rows)
{
deleteRow(dr,TableName,KeyName);
}
}
#endregion
updateRow
#region
updateRow
private
static
void
updateRow(DataRow dr,
string
TableName,
string
KeyName)
{
if
(dr[KeyName]
==
DBNull.Value )
{
throw
new
Exception(KeyName
+
"
的值不能为空
"
);
}
if
(dr.RowState
==
DataRowState.Deleted)
{
deleteRow(dr,TableName,KeyName);
}
else
if
(dr.RowState
==
DataRowState.Modified )
{
midifyRow(dr,TableName,KeyName);
}
else
if
(dr.RowState
==
DataRowState.Added )
{
insertRow(dr,TableName,KeyName);
}
else
if
(dr.RowState
==
DataRowState.Unchanged )
{
midifyRow(dr,TableName,KeyName);
}
}
#endregion
deleteRow
#region
deleteRow
private
static
void
deleteRow(DataRow dr,
string
TableName,
string
KeyName)
{
string
sql
=
"
Delete {0} where {1} =@{1}
"
;
DataTable dtb
=
dr.Table ;
sql
=
string
.Format(sql,TableName,KeyName);
SqlCommand sqlcom
=
new
SqlCommand(sql);
System.Data.IDataParameter iparam
=
new
SqlParameter();
iparam.ParameterName
=
"
@
"
+
KeyName;
iparam.DbType
=
GetDbType(dtb.Columns[KeyName].DataType);
iparam.Value
=
dr[KeyName];
sqlcom.Parameters .Add(iparam);
ExecCommand(sqlcom);
}
#endregion
midifyRow
#region
midifyRow
private
static
void
midifyRow(DataRow dr,
string
TableName,
string
KeyName)
{
string
UpdateSql
=
"
Update {0} set {1} {2}
"
;
string
setSql
=
"
{0}= @{0}
"
;
string
wherSql
=
"
Where {0}=@{0}
"
;
StringBuilder setSb
=
new
StringBuilder();
SqlCommand sqlcom
=
new
SqlCommand();
DataTable dtb
=
dr.Table;
for
(
int
k
=
0
; k
<
dr.Table.Columns.Count;
++
k)
{
System.Data.IDataParameter iparam
=
new
SqlParameter();
iparam.ParameterName
=
"
@
"
+
dtb.Columns[k].ColumnName;
iparam.DbType
=
GetDbType(dtb.Columns[k].DataType);
iparam.Value
=
dr[k];
sqlcom.Parameters .Add(iparam);
if
(dtb.Columns[k].ColumnName
==
KeyName)
{
wherSql
=
string
.Format(wherSql,KeyName);
}
else
{
setSb.Append(
string
.Format(setSql,dtb.Columns[k].ColumnName));
setSb.Append(
"
,
"
);
}
}
string
setStr
=
setSb.ToString();
setStr
=
setStr.Substring(
0
,setStr.Length
-
1
);
//
trim ,
string
sql
=
string
.Format(UpdateSql, TableName, setStr,wherSql);
sqlcom.CommandText
=
sql;
try
{
ExecCommand(sqlcom);
}
catch
(Exception ex)
{
throw
ex;
}
}
#endregion
insertRow
#region
insertRow
private
static
void
insertRow(DataRow dr,
string
TableName,
string
KeyName)
{
string
InsertSql
=
"
Insert into {0}({1}) values({2})
"
;
SqlCommand sqlcom
=
new
SqlCommand();
DataTable dtb
=
dr.Table ;
StringBuilder insertValues
=
new
StringBuilder();
StringBuilder cloumn_list
=
new
StringBuilder();
for
(
int
k
=
0
; k
<
dr.Table.Columns.Count;
++
k)
{
//
just for genentae,
if
(dtb.Columns[k].ColumnName
==
KeyName)
continue
;
System.Data.IDataParameter iparam
=
new
SqlParameter();
iparam.ParameterName
=
"
@
"
+
dtb.Columns[k].ColumnName;
iparam.DbType
=
GetDbType(dtb.Columns[k].DataType);
iparam.Value
=
dr[k];
sqlcom.Parameters .Add(iparam);
cloumn_list.Append(dtb.Columns[k].ColumnName);
insertValues.Append(
"
@
"
+
dtb.Columns[k].ColumnName);
cloumn_list.Append(
"
,
"
);
insertValues.Append(
"
,
"
);
}
string
cols
=
cloumn_list.ToString();
cols
=
cols.Substring(
0
,cols.Length
-
1
);
string
values
=
insertValues.ToString();
values
=
values.Substring(
0
,values.Length
-
1
);
string
sql
=
string
.Format(InsertSql, TableName,cols ,values);
sqlcom.CommandText
=
sql;
try
{
ExecCommand(sqlcom);
}
catch
(Exception ex)
{
throw
ex;
}
}
#endregion
}
}
2..调用范例
Insert
#region
Insert
private
void
InsertUserInfo()
{
DataTable dt
=
ds.Tables[
0
];
dt.TableName
=
"
UserInfo
"
;
string keyname="UserInfoID";
DataRow dr
=
dt.NewRow();
dr[
"
LoginName
"
]
=
this
.txtUserName.Value;
dr[
"
Pass
"
]
=
this
.txtPassword.Value;
dr[
"
NickName
"
]
=
this
.txtNickName.Value;
dr[
"
UserType
"
]
=
1
;
dr[
"
IsActive
"
]
=
false
;
dr[
"
RegisterDate
"
]
=
System.DateTime.Now;
dt.Rows.Add(dr);
dt.AcceptChanges();
DataHelper.InsertTable(dt,keyname);
}
#endregion
Update
#region
Update
private
void
UpdateUserInfo(
string
UserID)
{
DataSet ds
=
GetUserOther(UserID);
DataTable dt
=
ds.Tables[
0
];
dt.TableName
=
"
UserInfo
"
;
string keyname="UserID";
DataRow dr
=
dt.Rows[
0
];
dr[
"
LoginName
"
]
=
this
.txtUserName.Value;
dr[
"
Pass
"
]
=
this
.txtPassword.Value;
dr[
"
NickName
"
]
=
this
.txtNickName.Value;
dr[
"
UserType
"
]
=
1
;
dr[
"
IsActive
"
]
=
false
;
dr[
"
RegisterDate
"
]
=
System.DateTime.Now;
dt.Rows.Add(dr);
dt.AcceptChanges();
DataHelper.UpdateTable(dt,dt.TableName,keynanme);
}
#endregion
Delete
查看全文
相关阅读:
Java学习-021-Properties 获取配置项对应的值
Java学习-020-Properties 判断是否存在对应的 key 项
Java学习-019-Properties 文件读取实例源代码
Java学习-018-EXCEL 文件写入实例源代码
Redis进阶实践之九 独立封装的RedisClient客户端工具类
Redis进阶实践之八Lua的Cjson在Linux下安装、使用和用C#调用Lua脚本
Redis进阶实践之七Redis和Lua初步整合使用
Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务
Redis进阶实践之五Redis的高级特性
Redis进阶实践之四Redis的基本数据类型
原文地址:https://www.cnblogs.com/kokoliu/p/518931.html
最新文章
Selenium2学习-023-WebUI自动化实战实例-021-获取浏览器显示区域大小,通过 WebDriver 截图功能
Selenium2学习-022-WebUI自动化实战实例-020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小)
Selenium2学习-021-WebUI自动化实战实例-019-设置浏览器窗口位置大小
Selenium2学习-020-WebUI自动化实战实例-018-获取浏览器窗口位置大小
Selenium2学习-019-WebUI自动化实战实例-017-获取浏览器类型
HTML-002-弹出对话框
HTML-001-日期组件 layDate 演示
JS-010-覆盖率测试工具 JSCoverage 初识
JS-009-屏幕分辨率、浏览器显示区域、元素位置获取
JS-008-日期控件操作
热门文章
JS-007-富文本域操作
JS-006-表格元素操作
JS-005-常见下拉列表 Select 和 datalist
JS-004-判断元素显示状态
php-001-win7 环境下 wamp 的至简部署
JS-003-innerText 与 innerHTML 区别
JS-002-修改元素属性(以按钮示例)
JS-001-单选复选按钮操作
Java学习-023-Properties 类 XML 配置文件读取及写入源代码
Java学习-022-Properties 文件数据写入
Copyright © 2011-2022 走看看