01/01/2019 |
Admin |
Sql Server
Si executeNonQuery retourne toujours -1, en général c'est une erreur toute bete liée a votre procédure stockée.
Si vous avez laissé le SET NOCOUNT ON le probleme est reglé, il suffit de supprimer cette ligne.
Cette commande indique a sql serveur d'arreter d'afficher le message contenant le nombre de lignes affectées
Lire >>
01/01/2019 |
Admin |
Sql Server
- Trigger
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
IF EXISTS (SELECT * FROM sys.objects WHERE [type] = 'TR' AND [name] = 'MyTrigger' )
DROP TRIGGER MyTrigger;
GO
-- =============================================
-- Author:<Author,,Name>
-- Create date: <Create Date,,>
-- Description:<Description,,>
-- =============================================
CREATE TRIGGER [ MyTrigger ]
ON ...
- Table
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'MyTable')
CREATE TABLE [dbo].[ MyTable ](....
- Insertion de données
IF NOT EXISTS (SELECT id FROM [MyTable] WHERE [Name] = 'toto')
INSERT INTO [ MyTable ]
([Name]
,[Code])
VALUES
('toto'
,'007')
- View
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'MyView')
DROP VIEW MyView
GO
CREATE VIEW MyView
AS
....
GO
Lire >>
01/01/2019 |
Admin |
Sql Server
Pour réinitialiser la valeur de départ d'une colonne auto-incrémentée, deux solutions :
- Le truncate qui va supprimer toutes les données et réinitialiser le compteur à 0
TRUNCATE NomDeLaTable
- Le checkident qui va remettre la valeur du compteur à la valeur voulue
DBCC CHECKIDENT (NomDeLaTable, RESEED, LaValeurVoulue)
Lire >>
01/01/2019 |
Admin |
Sql Server
protected void makeMenu()
{
DataSet ds = GetDataSetForMenu();
foreach (DataRow parentItem in ds.Tables["Categories"].Rows)
{
MenuItem categoryItem = new MenuItem((string)parentItem["CategoryName"]);
menuAsp.Items.Add(categoryItem);
foreach (DataRow childItem in parentItem.GetChildRows("Children"))
{
MenuItem childrenItem = new MenuItem((string)childItem["ProductName"]);
categoryItem.ChildItems.Add(childrenItem);
}
}
}
private DataSet GetDataSetForMenu()
{
string connec = La ConnectionString;
SqlConnection myConnection = new SqlConnection(connec);
SqlDataAdapter adCat = new SqlDataAdapter("SELECT * FROM Categories", myConnection);
SqlDataAdapter adProd = new SqlDataAdapter("SELECT * FROM Products", myConnection);
DataSet ds = new DataSet();
adCat.Fill(ds, "Categories");
adProd.Fill(ds, "Products");
ds.Relations.Add("Children", ds.Tables["Categories"].Columns["CategoryID"], ds.Tables["Products"].Columns["CategoryID"]);
return ds;
}
Lire >>
01/01/2019 |
Admin |
Sql Server
Obtenir le champ suivant :
select top 1 id
from LaTable
where id > @Id
ORDER BY id ASC
Obtenir le champ précédent :
select top 1 id
from LaTable
where id < @Id
ORDER BY id DESC
Si cette requête est utilisée dans une application, il faudra aussi savoir si c'est le dernier enregistrement ou le premier :
select min(id)
from LaTable
select max(id)
from LaTable
Lire >>