万事开头难。最近操作了一下数据库,发现的确添加一条记录时,需要操作的事情最多。
一个很简单的事情,被搞得极其复杂。
在我看来,一切事物好与坏的评价,只有两个,第一个,是不是简单,第二个,是不是效率高。
给自己下绊子,不是好风格。
下面看看使用动软的生成器的模板,添加一条记录时生成的代码。
/// <summary>
/// 增加一条数据
/// </summary>
public bool Add(DT.LMISDAL.Model.DbVersion model)
{
try{
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into DbVersion(");
strSql.Append(" Caption, Details, posttime");
strSql.Append(") values (");
strSql.Append("@Caption,@Details,getdate()");
strSql.Append(") ");
strSql.Append(";select @@IDENTITY");
SqlParameter[] parameters = {
new SqlParameter("@Caption", SqlDbType.NVarChar,50) ,
new SqlParameter("@Details", SqlDbType.NVarChar) ,
};
int iIndex =0;
parameters[iIndex++].Value = model.Caption;
parameters[iIndex++].Value = model.Details;
//object obj = SqlHelper.ExecuteScalar(conn, CommandType.Text, strSql.ToString());
object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
if (obj == null)
{
return false;
}
else
{
model.VersionNum = int.Parse(obj.ToString());
return true;
}
}
catch (System.Exception ex)
{
MyErrExcu.E(ex);
return false;
}
}
这里面,有两个表的列,需要特殊处理,一个是ID列,一个是posttime列。
这里使用的模板是我自己改过的。
这里面,我发现,使用参数的方式,是一个非常二的选择。
因为如果报错,只能通过看代码的方式来找,而不能把sql语句放到sql server 中进行调试。
所以,以后,我会在这种地方,改用sql 的方式。