本文整理汇总了C#中IDbCommand.AddParameter方法的典型用法代码示例。如果您正苦于以下问题:C# IDbCommand.AddParameter方法的具体用法?C# IDbCommand.AddParameter怎么用?C# IDbCommand.AddParameter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDbCommand
的用法示例。
在下文中一共展示了IDbCommand.AddParameter方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: InsertCommand
public virtual void InsertCommand(IDbCommand command, object entity)
{
if (command == null) throw new ArgumentNullException("command");
if (entity == null) throw new ArgumentNullException("entity");
var columns = "";
var values = "";
foreach (var key in _keys)
{
var value = key.GetValue(entity);
if (value == null)
continue;
columns += string.Format("{0}, ", key.ColumnName);
values += string.Format("@{0}, ", key.PropertyName);
command.AddParameter(key.PropertyName, value);
}
foreach (var prop in _values)
{
var value = prop.GetValue(entity);
columns += string.Format("{0}, ", prop.ColumnName);
values += string.Format("@{0}, ", prop.PropertyName);
command.AddParameter(prop.PropertyName, value ?? DBNull.Value);
}
if (command.Parameters.Count == 0)
throw new DataException("No values were added to the query for " + entity);
command.CommandText = string.Format("INSERT INTO {0} ({1}) VALUES({2})",
TableName,
columns.Remove(columns.Length - 2, 2),
values.Remove(values.Length - 2, 2));
}
示例2: WritePeople
public static void WritePeople(IDbCommand cmd, Row row)
{
cmd.CommandText =
@"INSERT INTO People (UserId, FirstName, LastName, Email) VALUES (@UserId, @FirstName, @LastName, @Email)";
cmd.AddParameter("UserId", row["Id"]);
cmd.AddParameter("FirstName", row["FirstName"]);
cmd.AddParameter("LastName", row["LastName"]);
cmd.AddParameter("Email", row["Email"]);
}
示例3: UpdateCommand
public void UpdateCommand(IDbCommand command, object entity)
{
if (command == null) throw new ArgumentNullException("command");
if (entity == null) throw new ArgumentNullException("entity");
var updates = "";
var where = "";
foreach (var property in _values)
{
var value = property.GetValue(entity);
updates += string.Format("{0}[email protected]{1}, ", property.ColumnName, property.PropertyName);
command.AddParameter(property.PropertyName, value);
}
if (command.Parameters.Count == 0)
throw new DataException("At least one property (other than primary keys) must be specified.");
foreach (var property in _keys)
{
var value = property.GetValue(entity);
if (value == null || value == DBNull.Value)
throw new DataException(
string.Format("Entity {0}' do not contain a value for the key property '{1}'", entity,
property.PropertyName));
where += property.ColumnName + "=" + "@" + property.PropertyName + " AND ";
command.AddParameter(property.PropertyName, value);
}
command.CommandText = string.Format("UPDATE {0} SET {1} WHERE {2}",
TableName,
updates.Remove(updates.Length - 2, 2),
@where.Remove(@where.Length - 5, 5));
}
示例4: DeleteCommand
/// <summary>
/// Modifies the command to execute a DELETE statement
/// </summary>
/// <param name="command">Command that will be executed after this method call</param>
/// <param name="entity">Only primary key properties are used in the WHERE clause</param>
/// <exception cref="System.ArgumentNullException">
/// command
/// or
/// entity
/// </exception>
/// <exception cref="System.Data.DataException"></exception>
public void DeleteCommand(IDbCommand command, object entity)
{
if (command == null) throw new ArgumentNullException("command");
if (entity == null) throw new ArgumentNullException("entity");
var where = "";
foreach (var property in _keys)
{
var value = property.GetValue(entity);
if (value == null || value == DBNull.Value)
throw new DataException(
string.Format("Entity {0}' do not contain a value for the key property '{1}'", entity,
property.PropertyName));
where += string.Format("{0}=" + "@{1} AND ", property.ColumnName, property.PropertyName);
command.AddParameter(property.PropertyName, value);
}
command.CommandText = string.Format("DELETE FROM {0} WHERE {1}",
TableName,
@where.Remove(@where.Length - 5, 5));
}
示例5: SetParameters
private static void SetParameters(Procedure procedure, IDbCommand cmd, IDictionary<string, object> suppliedParameters)
{
if (procedure.Parameters.Any(p=>p.Direction == ParameterDirection.ReturnValue))
AddReturnParameter(cmd);
int i = 0;
foreach (var parameter in procedure.Parameters.Where(p=>p.Direction != ParameterDirection.ReturnValue))
{
object value;
if (!suppliedParameters.TryGetValue(parameter.Name.Replace("@", ""), out value))
{
suppliedParameters.TryGetValue("_" + i, out value);
}
var cmdParameter = cmd.AddParameter(parameter.Name, value);
cmdParameter.Direction = parameter.Direction;
i++;
}
}
示例6: PopulateCommand
private static string PopulateCommand(IDbCommand command, IEnumerable<string> messageTypes)
{
var builder = new StringBuilder();
var types = messageTypes.ToArray();
for (var i = 0; i < types.Length; i++)
{
command.AddParameter(SqlStatements.MessageTypeParameter + i, types[i]);
builder.AppendFormat(command.CommandText, i);
}
return builder.ToString();
}
示例7: SetParameters
private static void SetParameters(Procedure procedure, IDbCommand cmd, IDictionary<string, object> suppliedParameters)
{
AddReturnParameter(cmd);
int i = 0;
foreach (var parameter in procedure.Parameters)
{
object value;
if (!suppliedParameters.TryGetValue(parameter.Name.Replace("@", ""), out value))
{
suppliedParameters.TryGetValue("_" + i, out value);
}
cmd.AddParameter(parameter.Name, value);
i++;
}
}
示例8: WriteRow
private void WriteRow(IDbCommand cmd, Row row)
{
cmd.CommandText = GetCachedQueryOdbc(row);
foreach (string key in row.Keys)
{
cmd.AddParameter(key, row[key]);
}
}