Probabilmente io uso le query dirette per recuperare i record da una tabella e anche la stored procedure alcune volte. Cito il tipo di comando come CommandType.StoredProcedure durante l'utilizzo di SP. Inoltre sto vedendo un'altra opzione denominata CommandType.Tabledirect, cercato in qualche altro posto, ma non è chiaro a riguardo. Qualcuno potrebbe aiutarmi a farsi un'idea al riguardo? Per favore, dammi alcuni codici di esempio.Qual è lo scopo dell'uso di CommandType.Tabledirect
25
A
risposta
33
CommandType contiene nomi che specificano come viene interpretata una stringa di comando.
CommandType.Text
per un comando di testo SQL. (Predefinito)CommandType.StoredProcedure
per il nome di una stored procedure.CommandType.TableDirect
per il nome di un tavolo.
Tutte le righe e le colonne della tabella denominata verranno restituite quando si chiama uno dei metodi Execute.
NOTA: TableDirect è supportato solo dal provider di dati .NET Framework per OLE DB . L'accesso a più tabelle non è supportato quando CommandType è impostato su TableDirect.
esempio campione come viene stato utilizzato:
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();
Inserisci/Aggiorna
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));
}
Problemi correlati
- 1. Qual è lo scopo di. * \\?
- 2. Qual è lo scopo di Array.GetLowerBound (int)?
- 3. Qual è lo scopo di :: in C#?
- 4. Qual è lo scopo di IAsyncStateMachine.SetStateMachine?
- 5. Qual è lo scopo di riutilizzareIdentificatore?
- 6. Qual è lo scopo di IntentSender?
- 7. Qual è lo scopo di @EnableTransactionManagement?
- 8. Qual è lo scopo di .git/log
- 9. Qual è lo scopo di angular-sanitize?
- 10. Qual è lo scopo di com.sun.org.apache.xpath.internal.operations.String?
- 11. Qual è lo scopo di java.math.MutableBigInteger?
- 12. Qual è lo scopo di $ eq
- 13. Qual è lo scopo di HttpHeaders.TryAddWithoutValidation?
- 14. Qual è lo scopo di Microsoft.Net.Compilers?
- 15. Qual è lo scopo di requestWindowFeature()?
- 16. Qual è lo scopo di IApplicationBuilder.New()
- 17. Qual è lo scopo di clojure.core.reducers/reduce?
- 18. Qual è lo scopo di partitioningBy
- 19. Qual è lo scopo di durandal?
- 20. Qual è lo scopo di CMakeScripts?
- 21. Qual è lo scopo di JMH @Fork?
- 22. Qual è lo scopo di 'var'?
- 23. Qual è lo scopo di precompiledApp.config?
- 24. Qual è lo scopo di `qt_noop`
- 25. Qual è lo scopo di HTML?
- 26. Qual è lo scopo di UIWindow?
- 27. Qual è lo scopo di EXTRA_CFLAGS?
- 28. Qual è lo scopo di "() =>"
- 29. Qual è lo scopo di Rake?
- 30. Qual è lo scopo di ldexp?
E 'possibile, per eseguire l'aggiornamento/inserimento/cancellazione azioni tramite TableDirect.if sì, si può anche posta codice di esso. –
Ho appena aggiornato la mia risposta .. @ faheemkhan –
Grazie, lo esaminerò. –