Chrille.MMedlem sedan maj 200515 inlägg
Hej! (första inlägget och fråga)
jag sitter och testar lite vb.net i visualstudio och en sql-server db kopplad till detta. Min fråga är, kan någon visa för mig hur jag ska skriva för att hämta förutbestämda värden från en sql-db. Tex. användaren har fyllt i ett gäng olika värden i lika många textboxar, och beroende på vad han /hon fyllt i ska värden hämtas ur db. Möjligheten ska även finnas för användaren att hoppa över en textbox att fylla i, men ändå kunna söka på de värden som är ifyllda.
ps. Det är select-frågan jag är nyfiken på.
Tack på förhand!
// en sk.Rookie ;)
Mc FettoMedlem sedan nov. 20021 920 inlägg
Fel forum om du vill ha hjälp med sql. Men du får helt enkelt bygga en metod som kollar textboxarna och därifrån konkatinera (stavning?) ihop en sql-sträng.
Chrille.MMedlem sedan maj 200515 inlägg
Tack för påpekandet!
Var lite tankspridd när jag skev inlägget...men ska genast lägga frågan i ett annat forum.
renholmMedlem sedan apr. 20012 048 inlägg
BrimbaMedlem sedan dec. 19992 966 inlägg
Här ser du ett exempel (hämtat från swesecure.com)
CREATE PROCEDURE dbo.SearchUserSELECT
@province varchar(100) = null,
@fromAge tinyint = null,
@toAge tinyint = null,
@sex tinyint = null,
@username varchar(50) = null,
@haveUserPicture bit = null
AS
DECLARE @sql nvarchar(1000),
@paramlist nvarchar(4000)
-- SELECT
SELECT @sql = 'SELECT
t1.userId, t1.username
FROM
users t1’
if @haveUserPicture = 1
SELECT @sql = @sql + ‘INNER JOIN userPictures t2 ON t1.userId = t2.userId
else
SELECT @sql = @sql + ‘LEFT JOIN userPictures t2 ON t1.userId = t2.userId
SELECT @sql = @sql + ‘
WHERE
1=1’
IF @province IS NOT NULL
SELECT @sql = @sql + ‘and t1.province = @province’
IF @sex IS NOT NULL
SELECT @sql = @sql + ‘and t1.sex = @sex’
IF @ageFrom IS NOT NULL AND @ageTo IS NOT NULL
SELECT @sql = @sql + ' and t1.age BETWEEN @ageFrom AND @ageTo'
ELSE
IF @ageFrom IS NOT NULL
SELECT @sql = @sql + ' and t1.age >= @ageFrom'
ELSE
IF @ageTo IS NOT NULL
SELECT @sql = @sql + ' and t1.age <= @ageTo'
IF @username IS NOT NULL
SELECT @sql = @sql + ‘and t1.username like @username’
SELECT @sql = @sql +’ORDER BY
t1.username’
-- PARAMS
SELECT @paramlist = '@province varchar(100),
@fromAge tinyint,
@toAge tinyint,
@sex tinyint,
@username varchar(50),
@haveUserPicture bit’
-- EXECUTE
EXEC sp_executesql @sql, @paramlist,
@province, @fromAge, @toAge, @sex,
@username, @haveUserPicture
GO
Chrille.MMedlem sedan maj 200515 inlägg
Tack för hjälpen!
Det blev visst lite rörigt då jag la frågan på fel plats, men jag ska försöka skärpa mig till nästa gång jag gör ett inlägg.
Jag ska även försöka specifisera frågan lite så att den inte berör både sql och vb.net. om jag kan.....
:OO