您的位置:首页 > 编程语言 > ASP

asp.net 自己封装数据库操作一个类中一个自定义方法Execute(),非常实用,省去了麻烦的中间过程,动态参数

2013-05-09 22:43 996 查看
此方法用于执行数据库命令

public Object Execute(string[] prams, string cmdType)

此方法可以执行四种常用的增删改查的sql数据库命令

调用示例:

 

string[] prams = {"select * from Table1 where id=@id", "id", id };  //格式为:{sql命令,参数键,参数值}   (其中参数键,参数值可以为空)

string cmdType = "select";

Dataset ds = Execute(prams, cmdType);

 

prams:string数组,格式:{sql命令,参数键,参数值}   (其中参数键,参数值可以为空)

cmdType: 包括四种值"insert","delete","update","select"

返回值为一个Object对象,所以使用此方法的返回值时需要进行强制转换

 

 

public Object Execute(string[] prams, string cmdType)
{
this.Open();
//一条语句无参数
if (cmdType == "select")
{

//select语句 返回DataSet
if (prams.Length == 1)
{
string cmd = prams[0];
DataSet ds = new DataSet();
SqlDataAdapter dap = new SqlDataAdapter(cmd, con);
dap.Fill(ds);
this.Close();
return ds;
}
else
{
//sql带参数命令
string cmd = prams[0];
//获取临界数组下表
int paramMid = (prams.Length - 1) / 2;
string[] PramsKey = new string[100];
string[] PramsValue = new string[100];
//获取参数键
for (int i = 1,j = 0; i <= paramMid; i++,j++)
{
PramsKey[j] = prams[i];
}
for (int i = paramMid + 1,j=0; i <= prams.Length-1; i++,j++)
{
PramsValue[j] = prams[i];
}
SqlCommand sqlCmd = con.CreateCommand();
sqlCmd.CommandText = cmd;
for (int i = 0; i < paramMid; i++)
{
sqlCmd.Parameters.Add(new SqlParameter(PramsKey[i], PramsValue[i]));
}
SqlDataAdapter dap = new SqlDataAdapter(sqlCmd);
DataSet ds = new DataSet();
dap.Fill(ds);
this.Close();
return ds;
}
}
//sql插入命令,返回影响的行数
//sql更新命令,返回影响的行数
//sql删除命令,返回影响的行数
if (cmdType == "insert" || cmdType == "update"
|| cmdType == "delete")
{
//sql命令无参数
if (prams.Length == 1)
{
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = prams[0];
int num = cmd.ExecuteNonQuery();
this.Close();
return num;
}
//sql命令有参数
else
{
//sql带参数命令
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = prams[0];
//数组下表临界值
int paramMid = (prams.Length - 1) / 2;
string[] paramKey = new string[100];
string[] paramValue = new string[100];
//获取键
for (int i = 1, j = 0; i <= paramMid; i++, j++)
{
paramKey[j] = prams[i];
}
//cmd.Parameters.Clear();
//获取值
for (int i = paramMid + 1, j = 0; i <= prams.Length - 1; i++, j++)
{
paramValue[j] = prams[i];
}
//添加参数
for (int i = 0; i < paramMid; i++)
{
cmd.Parameters.Add(new SqlParameter(paramKey[i], paramValue[i]));
}
int num = cmd.ExecuteNonQuery();
//cmd.Parameters.Clear();
this.Close();
return num;
}
}
this.Close();
return null;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐