Har du testat att casta om till varchar(stort_tal)?
Eller varför inte:
... AND (p.Header Like '%@searchText%' OR p.Text Like '%@searchText%')
6 svar · 563 visningar · startad av Vinnaren
har följande
CREATE PROCEDURE [dbo].GetBloggPostByBloggIdAndSearchText
(
@bloggID int,
@searchText varchar(50)
)
AS
BEGIN
SET NOCOUNT ON;
SELECT p.postID,
ISNULL(p.cID, 0) AS 'cID',
p.Header,
p.Text, p.bID,
ISNULL(c.Name, 'Saknas') AS 'categoryName',
CONVERT(VARCHAR(17), p.Date, 113) AS date,
ISNULL(u.UserName, 'Avregistrerad') AS 'UserName'
FROM post AS p
LEFT OUTER JOIN category AS c
ON p.cID = c.cID
LEFT OUTER JOIN aspnet_Users AS u
ON p.UserId = u.UserId
WHERE p.bID = @bloggID
AND p.Header + ' ' + p.Text Like '%@searchText%'
ORDER BY p.Date DESC
END
Får felmeddelandet:
The data types text and varchar are incompatible in the add operator.
på:
AND p.Header + ' ' + p.Text Like '%@searchText%'
p.Header är i databasen varchar medans p.Text är text. Har provat med castat om dem till text men får samma felmeddelande.
Någon som vet hur man kan lösa det??
Tacksam för all hjälp
Har du testat att casta om till varchar(stort_tal)?
Eller varför inte:
... AND (p.Header Like '%@searchText%' OR p.Text Like '%@searchText%')
tack, märkte nu att det måste vara @searchText som är fel. Får inte ut något felmeddelande men häller inget resultat när jag kör den med
GetBloggPostByBloggIdAndSearchText 9, '2'
men tar jag bort @searchText o "hårdkodar" in 2 så får jag fram resultatet jag förväntar mig.
Hur löser man detta??
tacksam för all hjälp
Om du kör sql 2005 så ändra datatypen text till varchar(MAX).
varchar(MAX) är ny från 2005.
text är en gammal klumpig datatyp!
tack för tipset, nu e bägge varchar. Men jag får inga träffar iaf
Har provat med:
GetBloggPostByBloggIdAndSearchText 9, 't'
på följande:
WHERE p.bID = @bloggID
AND p.Header + ' ' + p.Text Like '%@searchText%'
WHERE p.bID = 9
AND p.Header + ' ' + p.Text Like '%@searchText%'
WHERE p.bID = @bloggID
AND p.Header + ' ' + p.Text Like '%t%'
men det är bara
WHERE p.bID = 9
AND p.Header + ' ' + p.Text Like '%t%'
som fungerar får inget felmeddelande, utan det kommer inte ut någon rad.
Vad kan det vara för fel tro?
Du har visst skrivit din parameter lite tokigt!
... Like '%' + @searchText + '%'
Funkar nog bättre!
tack, tusen tack doggelito, nu funkar den perfekt