按照C#操作Sql Server数据库的方式是不一样的,使用时发现占位符数据会混乱。
查阅相关资料及测试后,总结出这样一套使用方法。
方法:
public bool TsqlExecute(string tsql, params OleDbParameter[] parameters)
{
bool ok = false;
cmd = new OleDbCommand(tsql, conn);
cmd.CommandType = CommandType.Text; //设置语句解析方式为默认(SQL文本命令)
if (parameters != null) //如果参数集合不为空则进行遍历
{
foreach (OleDbParameter p in parameters)
{
if ((p.Direction == ParameterDirection.Output) && p.Value == null) p.Value = DBNull.Value;
cmd.Parameters.Add(p);
}
}
try
{
conn.Open();
int cou = cmd.ExecuteNonQuery();
if (cou > 0) ok = true;
conn.Close();
}
catch { }
return ok;
}
调用时:
DbData db = new DbData();
OleDbParameter[] pars = new OleDbParameter[] {
new OleDbParameter("@a",a),
new OleDbParameter("@b",b),
new OleDbParameter("@c",c)
};
db.TsqlExecute("update User set PassWord=@a , NickName=@b where Ids = @c", pars);