sql >> Databáze >  >> RDS >> Sqlserver

Jaký je účel použití CommandType.Tabledirect

CommandType obsahuje názvy, které určují, jak je interpretován příkazový řetězec.

  1. CommandType.Text pro textový příkaz SQL. (Výchozí.)
  2. CommandType.StoredProcedure pro název uložené procedury.
  3. CommandType.TableDirect pro název tabulky .

Při volání jedné z metod Execute budou vráceny všechny řádky a sloupce pojmenované tabulky.

POZNÁMKA:TableDirect je podporován pouze poskytovatelem dat .NET Framework pro OLE DB . Přístup k více tabulkám není podporován, když je CommandType nastaveno na TableDirect .

Ukázkový příklad, jak se používá:

OleDbConnection myOleDbConnection =new OleDbConnection("provider=sqloledb;server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI");
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();

myOleDbCommand.CommandType = CommandType.TableDirect;

myOleDbCommand.CommandText = "Employee";

myOleDbConnection.Open();

OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();

for (int count = 1; count <= 2; count++)
{
  myOleDbDataReader.Read();
  Console.WriteLine("myOleDbDataReader[\" ID\"] = " +
    myOleDbDataReader["ID"]);
  Console.WriteLine("myOleDbDataReader[\" FirstName\"] = " +
    myOleDbDataReader["FirstName"]);
  Console.WriteLine("myOleDbDataReader[\" LastName\"] = " +
    myOleDbDataReader["LastName"]);
}
myOleDbDataReader.Close();
myOleDbConnection.Close();

Vložit/Aktualizovat

        try
        {
            using (SqlCeCommand command = conn.CreateCommand())
            {
                command.CommandText = "Holdings";
                command.CommandType = CommandType.TableDirect;
                using (SqlCeResultSet rs = command.ExecuteResultSet(ResultSetOptions.Updatable | ResultSetOptions.Scrollable))
                {
                    SqlCeUpdatableRecord record = rs.CreateRecord();
                    foreach (var r in _commitBatch)
                    {
                        int index=0;
                        record.SetValue(index++, r.TryGetValueOrDefault("IdentifierFromImportSource",string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("SecurityID", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("SecurityName", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("SecurityType", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("AllocationAmount", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("Position", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("AnnualFeePercent", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("MarginAmount", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("Price", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("MorningstarSecId", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("MorningstarSecType", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("UserID", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("MorningstarPrice", string.Empty));
                        record.SetValue(index++, string.Empty);
                        record.SetValue(index++, r.TryGetValueOrDefault("AnnualFeeFrequency", string.Empty));
                        record.SetValue(index++, r.TryGetValueOrDefault("TrackingMethod", "1"));
                        rs.Insert(record);
                    }
                }

            }

        }
        catch (Exception e)
        {
            NotifyError(this, new ImportErrorEventArgs(e.Message + e.StackTrace, ErrorLevel.Application));
        }



  1. Entity Framework Core count nemá optimální výkon

  2. Nelze vytvořit připojení JDBC

  3. Databázové tabulky, jedna tabulka odkazující na více nesouvisejících tabulek

  4. Proč T-SQL ISNULL() zkracuje řetězec a COALESCE ne?