Comment puis-je transmettre les valeurs C# DateTime
(FromCreateDate
et ToCreateDate
) à SQL Server 2005 afin de sélectionner dans une vue? La colonne CreateDate
du jeu de résultats doit être comprise entre FromDateDate
et ToCreateDate
.Passer le paramètre de C# DateTime à SQL Server 2005?
Répondre
Exactement la même chose que vous le feriez pour tout autre paramètre ... Bien sûr, il dépend de la façon dont vous faites vos données d'accès, mais si l'on suppose un SqlCommand
que vous souhaitez simplement référence à un paramètre nommé (@fromDate
/@toDate
) dans le TSQL et ajoutez nommé SqlParameter
s (avec .Value = theDate
) à la commande:
DateTime end = DateTime.Today, start = end.AddDays(-7); // the last week
using (var conn = new SqlConnection(connectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.Parameters.AddWithValue("@from", start); // fine for DateTime; for strings, use more explicit param
cmd.Parameters.AddWithValue("@to", end); // construction to avoid lots of different-length plans
cmd.CommandText = "SELECT COUNT(1) FROM [Users] WHERE LastSeen >= @from AND LastSeen < @to";
int count = (int) cmd.ExecuteScalar();
}
avec LINQ etc vous souhaitez simplement l'utiliser dans la requête, à savoir
int count = db.Users.Count(user => user.LastSeen>=start && user.LastSeen<end);
J'utilise un co simple unt dans les exemples juste pour le garder simple; Évidemment, vous pouvez SELECT blah
d'un VIEW
etc aussi ...
@Mark: Dois-je envoyer deux valeurs sous forme de chaîne, puis les convertir en date et heure dans la procédure stockée? – odiseh
Non; il suffit de définir vos variables 'DateTime' dans' yourParameter.Value'. Je vais ajouter un exemple ... –
Il suffit de définir le type de paramètre à SqlDbType.DateTime
par exemple
SqlCommand cmd = new SqlCommand("Select * From dbo.MyView Where createDate = @FromDate", SqlCon);
cmd.Parameters.Add(new SqlParameter(@FromDate, SqlDbType.DateTime));
cmd.Parameters["@FromDate"].Value = fromDate;
- 1. Insertion de DateTime dans Sql Server 2005
- 2. Convert champ datetime dans SQL Server 2005
- 3. Paramètre de sortie SQL Server 2005
- 4. SQL Server (2005) - "Supprimé le" DATETIME et l'indexation
- 5. Paramètre d'aide Sql Server 2005 security
- 6. Extraction d'heures à partir d'un DateTime (SQL Server 2005)
- 7. SQL Server 2005 - Vérification de la valeur Null DateTime
- 8. Maintenir le format datetime de SQL Server vers C# et retour à SQL Server
- 9. Persistance d'une colonne datetime calculée dans SQL Server 2005
- 10. SQL Server 2005 sp_send_dbmail
- 11. SQL Server 2005 Date Localisation
- 12. SQL Server 2005 contre la confusion du format datetime ASP.net
- 13. Valider la chaîne DateTime dans SQL Server 2005
- 14. Paramètre SQL Server 2005 Xml provoquant un délai?
- 15. En C#, convertir Sql Server 2005 valeur datetime à un autre fuseau horaire
- 16. Requête SQL Server 2005
- 17. SQL Server varchar datetime
- 18. SQL Server 2005 Importer à partir d'Excel
- 19. Sql Server datetime conversion
- 20. SQL Server 2005 xp_cmdshell
- 21. Comment récupérer le datetime lorsqu'une ligne a été insérée/mise à jour dans Sql Server 2005?
- 22. Vues SQL Server 2005
- 23. SQL Server Integration Services - ajout de paramètre à l'instruction SQL
- 24. SqlDataReader C#, SQL Server 2005, VS 2008
- 25. SQL Server 2005 comparer les dates
- 26. SQL Server 2005 FOR XML
- 27. SQL Server 2008 VarChar à DateTime
- 28. Requête SQL SQL Server 2005
- 29. SQL Server 2005 à SQL Server CE Merge Replication
- 30. SQL Server 2005 Replication
Eh bien, il est ratherly une situation perplexe: Je voudrais faire un rapport d'une manière que si mon utilisateur a entré une date pour FromCreateDate alors je la compare à la colonne createDate, sinon, je compare la colonne créée seulement avec la valeur ToCreateDate (ie <= ToCreateDate) – odiseh
alors vous avez besoin de quelque chose comme: 'WHERE createDate> = @ fromDate AND (@toDate IS NULL OU createDate <= @toDate) '. –