首页 > 解决方案 > 在 Xamarin 中将存储过程与 Web 服务一起使用

问题描述

我在 Xamarin Form 中工作......我创建了 Web 服务 ASMX 和 SQL Server 数据库,它工作正常。但是当我用存储过程替换查询时出现错误。

我做什么 :

首先,

DBConnection.cs为连接字符串创建类

  public class DBConnection
    {
        public string ConnectionString
        {
            get
            {
                return "Data Source=...........;Initial Catalog=..........;User Id=......; Password=......;";
            }
        }
    }

之后,我创建存储过程Login

CREATE PROCEDURE [dbo].[Login] (
   @UserNameLogin NCHAR (20), 
   @UserPasswordLogin NCHAR (30)
   )
AS
   SELECT * FROM [Us] WHERE UserName=@UserNameLogin AND UserPassword=@UserPasswordLogin
RETURN 0

最后,我使用了代码隐藏来连接

public Result Login(string UserName, string UserPassword)
       {

           SqlConnection con = new SqlConnection(new DBConnection().ConnectionString);

           /// Class for return bool vaulable 
           Result result = new Result();
           try
           {

               SqlCommand com = new SqlCommand("Login", con);

               com.Parameters.AddWithValue("@UserNameLogin", UserName);
               com.Parameters.AddWithValue("@UserPasswordLogin", UserPassword);
               com.Connection = con;
               if (con.State == System.Data.ConnectionState.Closed)
                   con.Open();
               SqlDataReader rd = com.ExecuteReader();
               if (rd.HasRows)
               {
                   rd.Read();
                   result.ValidUser = true;
                   return result;
               }

System.Data.SqlClient.SqlException(0x80131904)的问题在哪里 :过程或函数'Login'需要参数'@UserNameLogin',但未提供。

以及如何解决?我需要配置管理器吗?如果是的话如何编写正确的代码

标签: c#sql-serverweb-services

解决方案


我认为你必须指定com.CommandType = CommandType.StoredProcedure;


推荐阅读