0
私はC#の初心者です。私はストアドプロシージャを呼び出すことはできません。ストアドプロシージャを呼び出せません
私のストアドプロシージャがこれです:私のC#コードで
CREATE PROCEDURE USP_login
@us VARCHAR(20),
@pwd VARCHAR(20)
AS
BEGIN TRAN
BEGIN TRY
SELECT *
FROM dbo.KhachHang
WHERE tenDangNhap = @us AND matKhau = @pwd
END TRY
BEGIN CATCH
ROLLBACK TRAN
RETURN 0
END CATCH
COMMIT TRAN
RETURN 1
GO
、私はUSP_login
ストアドプロシージャを呼び出すために、この機能を使用するが、それは動作しません:
public bool loginStored(string us, string pwd)
{
object[] sqlParams =
{
new SqlParameter ("@userName", us),
new SqlParameter ("@passWord", pwd),
};
var rs = db.Database.SqlQuery<bool>("USP_login @userName, @passWord", sqlParams).SingleOrDefault();
return rs;
}
スクリーンショットでのエラーメッセージ:
エラーは何が間違っているかを伝えています.Configファイルの接続文字列が正しく設定されていますか?単純なSelectクエリに対してトランザクションやロールバックは必要ありません。SELECT * FROM dbo.KhachHang where tenDangNhap = @ us AND matKhau = @ pwd'基本的なSqlクエリの実行方法や、あなたが複雑なlinqを好きでなければ、Select *は '1つの条件を探しているか1列しかチェックしていない場合は、パフォーマンスに関して意味します。 – MethodMan
'var'は使わないでください。この場合、varを使う必要はありません。変数を適切に定義した場合は、実行時エラーよりも修正が容易なコンパイラエラーが発生します。 '例外の詳細をクリップボードにコピーする'を押し、メモ帳に貼り付けると、スタックトレースのエラーメッセージが表示されます。 – jdweng