sqlHelper.ExecNonQuery( sql,QueryCondition condition);怎么编写这个方法呢
entity是实体,例如设置实体的属性后,进行插入操作,调用这个方法。执行Sql语句,怎么编写这个执行Sql的语句的方法呢
public void Insert(Engine entity)
{
string sql = @"
INSERT INTO Engine (Id, Code, Name)
VALUES (@Id, @Code, @Name)"; sqlHelper.ExecNonQuery(sql, Entity2Condition(entity));
}
private QueryCondition Entity2Condition(Engine entity)
{
QueryCondition condition = new QueryCondition(); condition.Parameters.Add(new Parameter("Id", DbType.Guid, entity.Id));
condition.Parameters.Add(new Parameter("Code", DbType.AnsiString, entity.Code));
condition.Parameters.Add(new Parameter("Name", DbType.String, entity.Name));
}
sqlHelper.ExecNonQuery( sql,QueryCondition condition){};求这个方法怎么写
entity是实体,例如设置实体的属性后,进行插入操作,调用这个方法。执行Sql语句,怎么编写这个执行Sql的语句的方法呢
public void Insert(Engine entity)
{
string sql = @"
INSERT INTO Engine (Id, Code, Name)
VALUES (@Id, @Code, @Name)"; sqlHelper.ExecNonQuery(sql, Entity2Condition(entity));
}
private QueryCondition Entity2Condition(Engine entity)
{
QueryCondition condition = new QueryCondition(); condition.Parameters.Add(new Parameter("Id", DbType.Guid, entity.Id));
condition.Parameters.Add(new Parameter("Code", DbType.AnsiString, entity.Code));
condition.Parameters.Add(new Parameter("Name", DbType.String, entity.Name));
}
sqlHelper.ExecNonQuery( sql,QueryCondition condition){};求这个方法怎么写
{
string sql = @"
INSERT INTO Engine (Id, Code, Name)
VALUES (@Id, @Code, @Name)";sqlHelper.ExecNonQuery(sql, Entity2Condition(entity));
}
private QueryCondition Entity2Condition(Engine entity)
{
QueryCondition condition = new QueryCondition();condition.Parameters.Add(new Parameter("Id", DbType.Guid, entity.Id));
condition.Parameters.Add(new Parameter("Code", DbType.AnsiString, entity.Code));
condition.Parameters.Add(new Parameter("Name", DbType.String, entity.Name));return condition ;sqlHelper.ExecNonQuery( sql,QueryCondition condition){
using (SqlConnection conn=new SqlConnection("连接字符串"))
{
using (SqlCommand cmd=new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = sql;
cmd.Parameters.AddRange(condition。Parameters);
conn.Open();
int num = cmd.ExecuteNonQuery();
conn.Close(); return num;
}
}
标准(我的标准)的这个方法是: public int ExecuteCommand(string sql, SqlParameter[] sp)
{
using (SqlConnection conn=new SqlConnection("连接字符串"))
{
using (SqlCommand cmd=new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = sql;
cmd.Parameters.AddRange(sp);
conn.Open();
int num = cmd.ExecuteNonQuery();
conn.Close(); return num;
}
}
}}
}
//返回的是受影响的行数
public int ExecuteCommand(string sql, SqlParameter[] sp)
{
SqlCommand command = new SqlCommand();
PrepareCommand(command, connection, null, commandType, commandText, commandParameters);
int num = command.ExecuteNonQuery();
command.Parameters.Clear();
return num;
}
{
string sql = @"
INSERT INTO Engine (Id, Code, Name)
VALUES (@Id, @Code, @Name)";sqlHelper.ExecNonQuery(sql, Entity2Condition(entity));
}
private QueryCondition Entity2Condition(Engine entity)
{
QueryCondition condition = new QueryCondition();condition.Parameters.Add(new Parameter("Id", DbType.Guid, entity.Id));
condition.Parameters.Add(new Parameter("Code", DbType.AnsiString, entity.Code));
condition.Parameters.Add(new Parameter("Name", DbType.String, entity.Name));return condition;
}sqlHelper.ExecNonQuery( sql,QueryCondition condition){
using (SqlConnection conn=new SqlConnection("连接字符串"))
{
using (SqlCommand cmd=new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = sql;
cmd.Parameters.AddRange(condition。Parameters);
conn.Open();
int num = cmd.ExecuteNonQuery();
conn.Close(); return num;
}
}
}
{
string sql = @"INSERT INTO Engine (Id, Code, Name)VALUES (@Id, @Code, @Name)";
SqlParameter[] param= { new Sqlparamter("@Id", entitry.id),
new Sqlparamter("@Code", entitry.Code),
new Sqlparamter("@Name", entitry.Name)
};
return ExecuteNonQuery(connection,CommandType.Text,sql,param);}
如果你是要讨一个可用的sqlHelper,那么也不是这样的提问方法。如果是问别人写的sqlHelper怎么用,那么至少要贴出他写的类定义才行。
我们都有自己的sqlHelper类,结合自己的实际情况,将数据库底层操作包装下,让使用的时候更加方便,如果你连数据库基本操作的C#写法都不会,要看懂别人写的sqlHelper是不可能的,用的时候出现问题就更加不知所以然了。
{
private List<Parameter> parameters = new List<Parameter>();
private List<Expression> expressions = new List<Expression>();
public List<Parameter> Parameters
{
get { return this.parameters; }
}
public List<Expression> Expressions
{
get { return this.expressions; }
}我的Querycondtion是这么写的, cmd.Parameters.AddRange(condition.Parameters);这句话不对吧
它的效率是最快的,非常适合你的需求。
我在它的基础上还修正了一些BUG,扩展了数据类型转换功能,不过只针对.NET4.0做的修改,你要需要的话,单独发你邮箱。
学生类,里面有两个属性,stunum(学号)和name(姓名)
数据库用的是ms sql2000,我用spgen生成的存储过程,所以没有写sql语句。
public bool Insert()
{
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("stunum",stunum),
new SqlParameter("name",name)
}; SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.StoredProcedure, "stuinfo_Insert", parameters);
}