Jetzt ist dies bei weitem das seltsamste, was ich bei der Arbeit mit MSSQL begegnet bin.Abfrage funktioniert ohne Parameter aber nicht mit Parametern
ich eine Tabelle namens Benutzer haben, ist es eine Zeile in sich hat, die „admin“ im Feld Benutzername hat, wenn ich die folgende Abfrage ausführen, es gibt mir keine Ergebnisse:
DECLARE @uname varchar;
SET @uname = 'admin'
SELECT * FROM [User] WHERE UserName = @uname
Aber
, wenn ich das laufen, ich erwartete Ergebnisse:
SELECT * FROM [User] WHERE UserName = 'admin'
Und dies ist die Tabellendefinition:
CREATE TABLE [dbo].[User](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[UserName] [nvarchar](256) NOT NULL,
[FirstName] [nvarchar](256) NULL,
[LastName] [nvarchar](256) NULL,
[Email] [nvarchar](512) NULL,
[Password] [binary](64) NULL,
[GroupID] [int] NOT NULL,
CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [UQ__Users__C9F284563A4F773F] UNIQUE NONCLUSTERED
(
[UserName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Und ich Greifen Sie auf diese Datenbank in C# -Anwendung zu, wenn ich den Benutzernamen in einem SqlParameter übergebe, gibt es mir einfach keine Ergebnisse.
Und hier ist eine Probe C# -Code:
string query = "SELECT COUNT(*) FROM [User] WHERE UserName = @uname";
using (var connection = new SqlConnection(ConnectionString))
{
connection.Open();
using (var cmd = new SqlCommand(query, connection))
{
cmd.Parameters.Add(new SqlParameter("uname", "admin"));
int rowCount = (int)cmd.ExecuteScalar();
}
}
ich keine Ausnahmen zu bekommen.
Irgendwelche Ideen?
Zeig mir den Code, wo Sie auf das Problem stoßen – Chaitanya
@durga, habe ich die C# -Code-Beispiel – Glen
@ fehlt im Parameternamen hinzugefügt. –