积极答复者
我得到一个微软mvp写的一个数据库访问类,不知道如何传递 参数?!

问题
-
由于该类太大!我放到网站上了:http://www.w8le.com/lkfup/ado.htm
//由于 DbParameter 是虚拟类 不允许实例化,我这里想到的是用 SqlParameter 来传递(SqlParameter 是继承了DbParameter的) //可是这样又觉得辜负了该类可以自动判断数据库类型的功能,觉得应该用 //db.CreateParameter()方法来创建参数, //可是没研究明白! Providers.DataAccess db = new Providers.DataAccess("lkfCon"); string sql = "insert into Tab_User(name,age) output inserted.id values(@name,@age)"; SqlParameter[] prams = { new SqlParameter("@name", model.Name), new SqlParameter("@age", model.Age) }; object o = db.ExecuteScalar(sql,prams);
我的水平有限,最好能写个例子
我是半路出家,而且是自学 学的是C#语言,希望回帖的高手们留意一下,谢谢大家的帮助
- 已编辑 lkf18 2012年6月14日 13:51 补充一下
答案
-
用该类提供的 CreateParameter 方法来创建参数
知识改变命运,奋斗成就人生!
- 已标记为答案 肖小勇Moderator 2013年1月18日 8:58
-
您好,您不需要实例化DBParameter,CreateParameter方法需要传入参数的名称,类型和值,会自动返回出一个参数。
Allen Li [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 肖小勇Moderator 2013年1月18日 8:58
全部回复
-
用该类提供的 CreateParameter 方法来创建参数
知识改变命运,奋斗成就人生!
- 已标记为答案 肖小勇Moderator 2013年1月18日 8:58
-
您好,您不需要实例化DBParameter,CreateParameter方法需要传入参数的名称,类型和值,会自动返回出一个参数。
Allen Li [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 肖小勇Moderator 2013年1月18日 8:58
-
Providers.DataAccess db = new Providers.DataAccess("lkfCon"); string sql = "insert into Tab_User(name,age) output inserted.id values(@name,@age)"; DbParameter[] prams = { db.CreateParameter("@name","" model.Name), db.CreateParamete("@age", "",model.Age) };
object o = db.ExecuteScalar(sql,prams); -
Providers.DataAccess db = new Providers.DataAccess("lkfCon"); string sql = "insert into Tab_User(name,age) output inserted.id values(@name,@age)"; DbParameter[] prams = { db.CreateParameter("@name","" model.Name), db.CreateParamete("@age", "",model.Age) };
object o = db.ExecuteScalar(sql,prams); db.CreateParameter("@name","" model.Name), db.CreateParameter("@name","" model.Name),
db.CreateParameter("@name","" model.Name),
我也曾经想过这样写,不过看到源码public DbParameter CreateParameter(string field, string dbtype, string value)
{
................
}
value 只是个 string类型,不知道向里面传其他类型的参数会不会有问题呢?
突然想到一点 是不是 CreateParameter返回的 可能是sqlparameter 也可能是 oledbparameter呢? 这就是 多态吧?
- 已编辑 lkf18 2012年6月20日 13:37