6 Aralık 2018 Perşembe

OleDbCommand Sınıfı

Giriş
Şu satırı dahil ederiz.
using System.Data.OleDb;
Constructor - default
Şöyle yaparız. CommandText ve CommandType alanlarına değer atamak gerekir.
using (OleDbCommand cmd = new OleDbCommand())
{
  cmd.Connection  = connection;
  cmd.CommandText = " Insert into ...";
  ...
}
Constructor - commandtext + connection
Örnek
Şöyle yaparız.
var query = "...";
using (var cmd = new OleDbCommand(query, conn))
{
  ...
}
Örnek
Şöyle yaparız. Sql cümlesi içinde "named parameter" kullanılabilir ancak sırasına dikkat etmek lazım.
OleDbConnection conn = ...;
string sqlString = "SELECT * FROM Person INNER JOIN Employee ON " +
            "Person.ID=Employee.ID WHERE ID = @ID";
OleDbCommand comm = new OleDbCommand(sqlString, conn);
comm.Parameters.AddWithValue("@ID", id);
Constructor
OleDBConnection nesnesi tarafından yaratılabilir.Şöyle yaparız. CommandText ve CommandType alanlarına değer atamak gerekir.
OleDbConnection conn = ...;
OleDbCommand cmd = con.CreateCommand();
CommandText Alanı
Şöyle yaparız
cmd.CommandText = "Update [" + comboBox1.SelectedValue.ToString() + "] SET Wbs ='2'";
CommandType Alanı
Şöyle yaparız.
insertCmd.CommandType = CommandType.Text;
ExecuteNonQuery metodu
Açıklaması şöyle
You can use the ExecuteNonQuery to perform catalog operations (for example, querying the structure of a database or creating database objects such as tables), or to change the data in a database without using a DataSet by executing UPDATE, INSERT, or DELETE statements.
Insert,Update, Delete gibi işlermler için kullanılır. Şöyle yaparız.
cmd.ExecuteNonQuery ();
ExecuteReader metodu
Select cümlesini çalıştırır. Şöyle yaparız.
OleDbDataReader dr = comm.ExecuteReader(CommandBehavior.SingleRow);
if (dr.Read())
{
  ...
}
Parameters Alanı
Açıklaması şöyle
The OLE DB .NET Provider does not support named parameters for passing parameters to an SQL statement
Bazı sql sağlayıcıları (hepsi değil) değişkenlerin yerine ? karakteri kullanılır. Buna dikkat etmek gerekir.

Parameters.AddRange ile şöyle yaparız.
...
var query = "INSERT INTO MY_TABLE VALUES (?, ?, ?, ?, ?)";

using (var cmd = new OleDbCommand(query, conn))
{
  cmd.CommandType = CommandType.Text;
  cmd.Parameters.AddRange(new OleDbParameter[]
  {
    new OleDbParameter("@id", FindItemId(filePath)),
    new OleDbParameter("@filepath", filePath),
    new OleDbParameter("@filename", new FileInfo(filePath).Name),
    new OleDbParameter("@filesize", new FileInfo(filePath).Length),
    new OleDbParameter("@md5", GetMd5Hash(filePath))
  });
  cmd.ExecuteNonQuery();
}
Parameters.Add ile şöyle yaparız.
using (OleDbCommand cmd = new OleDbCommand())
{
  cmd.Connection = connection;
  cmd.CommandText = " Insert into Book(Book_Name,Book_Number,Publisher) 
  values(?,?,?)";
  cmd.Parameters.Add("@BookName", OleDbType.VarChar).Value = bookName.Text;
  cmd.Parameters.Add("@BookNumber", OleDbType.Integer).Value = bookNumber.Text;  
  cmd.Parameters.Add("@Publisher", OleDbType.VarChar).Value = publisher.Text;
  cmd.ExecuteNonQuery();
}
ParametersçAddWithValue ile şöyle yaparız.
cmd.CommandText = "UPDATE Data SET Denom = ?, Denom1 = ? WHERE Limit = ?";
cmd.Parameters.AddWithValue("@den50", CRMden50.Text);
cmd.Parameters.AddWithValue("@den100", CRMden100.Text);
cmd.Parameters.AddWithValue("@lim30", 30);
cmd.ExecuteNonQuery();

Hiç yorum yok:

Yorum Gönder