1

我想确切地知道我们如何在 C# .NET 4.0 Form Application 上做这些事情:

  • 声明 SqlCeParameterCollection 对象
  • 向集合中添加参数
  • 将集合添加到命令

以下是我当前代码的示例:

  • 声明和添加

    SqlCeParameterCollection Parameters = new SqlCeCommand().Parameters;
    Parameters.Add("username", Username);
    Parameters.Add("password", Password);
    

现在如何立即将此集合添加到命令中?

谢谢

4

2 回答 2

3

试试这个:

string query = "...(whatever you need).....";

using(SqlCeConnection conn = new SqlCeConnection(connectionString))
using(SqlCeCommand cmd = new SqlCeCommand(query, conn))
{ 
    // just add parameters directly to SqlCeCommand object .... 
    cmd.Parameters.Add("username", Username);
    cmd.Parameters.Add("password", Password);

    conn.Open();
    cmd.ExecuteNonQuery();  // or whatever you need to do 
    conn.Close();
}

如果您必须预先单独设置参数,那么您需要执行以下操作(因为您不能直接使用SqlCeParameterCollection):

List<SqlCeParameters> parameters = new List<SqlCeParameters>();

parameters.Add(new SqlCeParameter(.....));
parameters.Add(new SqlCeParameter(.....));

string query = "...(whatever you need).....";

using(SqlCeConnection conn = new SqlCeConnection(connectionString))
using(SqlCeCommand cmd = new SqlCeCommand(query, conn))
{ 
    // add all parameters from the list - casting to an array
    cmd.Parameters.AddRange(parameters.ToArray());

    conn.Open();
    cmd.ExecuteNonQuery();  // or whatever you need to do 
    conn.Close();
}
于 2012-10-25T05:51:58.483 回答
1

SqlCeCommand.Parameters只读的,所以你不能SqlParametersCollection直接给这个属性分配一个新的。

您通常希望使用CreateCommand工厂方法SqlCeConnection来创建命令(因为它将为您链接连接)。

然后你command.Parameters直接使用:

SqlCeCommand cmd = con.CreateCommand();
// cmd.CommandType = ...; cmd.CommandText = ...
cmd.Parameters.Add("username", Username);
cmd.Parameters.Add("password", Password);
于 2012-10-25T05:40:30.267 回答