как добавить параметр - PullRequest
1 голос
/ 05 августа 2010

Как добавить параметр, который я использую

Мне нужно вставить мульти значение для создания формы субмиссии

string connectionString12 = ConfigurationManager.ConnectionStrings["mobile_db"].ConnectionString;
OleDbConnection con = new OleDbConnection(connectionString12);
OleDbCommand cmdinsert = new OleDbCommand("insert into brand_tbl (brand_name)values(@2GNetwork)", con);
Parameter ab = new Parameter();

Ответы [ 2 ]

2 голосов
/ 09 ноября 2010

Для каждого параметра вам нужно создать объект параметра, назначить его имя и значение и добавить параметр в команду. Следующий пример должен помочь вам начать.

public void MyInsert(string twoGNetwork)
{
    string connectionString; // get your connection string here
    using (DbConnection connection = new OleDbConnection(connectionString))
    using (DbCommand command = connection.CreateCommand())
    {
        command.CommandText = "insert into brand_tbl (brand_name) values (@2GNetwork)";

        // Add parameters
        AddParameter(command, "@2GNetwork", twoGNetwork);

        connection.Open();
        command.ExecuteNonQuery();
    }
}

private static void AddParameter(DbCommand command, string name, object value)
{
    DbParameter param = command.CreateParameter();
    param.ParameterName = name;
    param.Value = value;
    command.Parameters.Add(param);
}

Edit:
Я читаю, что OLEDB может игнорировать имена параметров и уважать только порядок. Поэтому убедитесь, что вы добавляете свои параметры в том порядке, в котором они используются.

0 голосов
/ 05 августа 2010

Я не уверен, что полностью понимаю ваш вопрос.Вам не нужны параметры, если вы не вызываете хранимые процедуры.Если вы передаете запрос SQL, вы можете передать аргументы в string.Format(), возможно.

(приведенный ниже пример был адаптирован из MSDN )

string customerId = "NWIND"
string companyName = "Northwind Traders";

OleDbConnection myConnection = new OleDbConnection(myConnectionString);
string myInsertQuery = string.Format("INSERT INTO Customers (CustomerID, CompanyName) Values('{0}', '{1}')", customerId, companyName);
OleDbCommand myCommand = new OleDbCommand(myInsertQuery);
myCommand.Connection = myConnection;
myConnection.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();

Однако, если вы хотите вместо этого вызывать хранимую процедуру, вы должны сделать это с OleDB:

(приведенный ниже пример был адаптирован из MSDN )

OleDbConnection myConnection = new OleDbConnection(myConnectionString);
OleDbCommand salesCMD = new OleDbCommand("SalesByCategory", nwindConn);
salesCMD.CommandType = CommandType.StoredProcedure;
OleDbParameter myParm = salesCMD.Parameters.Add("@CategoryName", OleDbType.VarChar, 15);
myParm.Value = "Beverages";
myConnection.Open();
OleDbDataReader myReader = salesCMD.ExecuteReader();
myConnection.Close();
...