Je veux obtenir des enregistrements pour 1 jour à 30 jours de la requête travaille dans SQL correctementSélectionnez les enregistrements pour une journée à 30 jours C#
SELECT * FROM Tbl_order WHERE date >= DATEADD(day, -1, GETDATE())
donc ce que je l'ai fait dans C#
j'utiliser zone de liste déroulante
int CmboDays;
for (CmboDays = -1; CmboDays >= -30; CmboDays--)
{
comboBox1.Items.Add(CmboDays);
}
private void orderBySearchDays()
{
string c = comboBox1.Text;
int x = Convert.ToInt32(c);
using (connection = new SqlConnection(connectionString))
using (SqlDataAdapter adapter = new SqlDataAdapter("select* from Tbl_order WHERE date >= DATEADD(day,'"+ x + "', GETDATE()) ; ", connection))
{
DataTable Tbl_order = new DataTable();
connection.Open(); //opens the connection
adapter.Fill(Tbl_order);
connection.Close(); //Closes the connection
lst_CustomerNo.DataSource = Tbl_order; //assigns a datasource
lst_CustomerNo.DisplayMember = "CustomerNo"; //assigns display
lst_CustomerNo.ValueMember = "CustomerNo";
lst_OrderName.DataSource = Tbl_order;
lst_OrderName.DisplayMember = "OrderName";
lst_OrderName.ValueMember = "OrderName";
lst_Quantity.DataSource = Tbl_order;
lst_Quantity.DisplayMember = "Quantity";
lst_Quantity.ValueMember = "Quantity";
lst_Price.DataSource = Tbl_order;
lst_Price.DisplayMember = "Price";
lst_Price.ValueMember = "Price";
lst_datetime.DataSource = Tbl_order;
lst_datetime.DisplayMember = "Date";
lst_datetime.ValueMember = "Date";
}
}
donc toutes les données seront exposées dans la zone de liste
Je reçois cette erreur
Une exception non gérée du type 'System.Data.SqlClient.SqlException' produite dans system.data.dll
Informations complémentaires: Argument type de données varchar est invalide pour argument 2 de dateadd fonction.
Est-ce que je le fais mal? Comment réparer l'erreur?
paramètres d'utilisation. Ne pas munir la chaîne de requête avec des valeurs d'entrée. –