创建新的DbCommand时出错

时间:2012-05-01 16:31:50

标签: c# ado.net

我想创建一个新的DbCommand,但是会出现一些错误:

DbCommand insertcommand = new DbCommand("insert into persons(firstname, lastname, email) values(?, ?, ?)", connection);
insertcommand.Parameters.Add(1, DbType.String, 50, "fistname");
insertcommand.Parameters.Add(2, DbType.String, 50, "lastname");
insertcommand.Parameters.Add(3, DbType.String, 100, "email");
dbAdapter.InsertCommand = insertcommand;

这会产生错误

  

无法创建抽象类或接口的实例   “System.Data.Common.DbCommand”

  

方法“添加”没有重载需要4个参数

我应该如何创建这些命令并填充参数?

2 个答案:

答案 0 :(得分:5)

您通常需要 直接创建具体实例(new SqlCommand等)或使用IDbConnection.CreateCommand

目前尚不清楚哪种情况最适合您的情况。

对于Add调用 - 如果使用具体的命令类型,您可能会有更多的重载可用。否则,您可能希望使用IDbCommand.CreateParameter,设置属性,然后将其添加到参数集合中。

答案 1 :(得分:0)

您需要创建一个新的SQLParameter并添加所有内容。然后,传递SQLParameter作为参数。我相信,Parameters.Add只接受一个参数,那就是你的SQLParameter。

http://msdn.microsoft.com/en-us/library/yy6y35y8(v=vs.80).aspx