Ked pouzijem prikaz SELECT [meno] FROM [tabulka] WHERE meno='Peter' ako potom pomocou C# kodu zistim ze tato hodnota neexistuje? Potrebujem proste zistit ci sa to dane meno nachadza v tabulke a ak nie tak ho vytvorit. Ked porovnam nacitanu hodnotu z SqlDataReaderu napr z prazdnym retazcom pripade null tak to nejde.
Fórum › .NET
MS SQL
To sa ako robi? Som zaciatocnik v MS SQL....
nu pro zacatek se seznam s jednou strankou jmenem "google", tam zadej: "mssql pocet radku" ... a pak zbezne prolitni co ti to vyhodilo
a protoze mam dnes dobrou naladu tak je to agregacni funkce count(*) .. ale i tak to zkus najit schvalne taky
To Petrroll : Ne vždy je LINQ k dispozici...
Pokud jsem to správně pochopil chceš aby byla jména unikátní, ne? Potom máš ale nejlepší hodit si na sloupec s jménama prostě a jednoduše unique index - a c# ti pak při vzniklé duplikaci vyhodí vyjímku, tu chytneš a řekneš bfu ať si změní jméno...
Dělá se to tak, že v Server Exploreru klikneš Pravým myši na sloupec který chceš a vybereš "Index/Keys" (nebo tak nějak) a tam už si snad poradíš :)
Pokud ne, tak triviální query:
SELECT COUNT(*) AS pocet FROM [tabulka] WHERE meno='Peter';
vrátí počet řádků s jménem Peter :)
Kdyby jsi chtěl bejt drsnej tak si můžeš napsat skalární funkci:
CREATE FUNCTION dbo.JeVDB(@jmeno varchar(50))
RETURNS BIT
AS
BEGIN
DECLARE @value INT
DECLARE @result BIT
SELECT @value = COUNT(*) FROM
[tabulka] WHERE meno = @jmeno;
IF(@value = 0)
BEGIN
SET @result = 0;
END
ELSE
BEGIN
SET @result = 1;
END
RETURN @result;
END
a pak query bude jen takováhle:
SELECT JeVDB("Peter") AS jetamneboneni;
No a pak v c# zavoláš na sqlcmd.ExecuteScalar()
Ale to už je jak s kanonem na vrabce a dávám to sem jen pro zajímavost :) Nejlepší řešení je asi ten unique index.
Jo a píšu to z hlavy, takže možná je tam někde chybka...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Jak odoslat tabulku nacitanu s sql s pridanym polickom do inej tabul… — založil Rastislav
Přechod z SQL 2005 express na SQL 2008 express — založil Sniper
Moderátoři diskuze