在 Xamarin 中将存储过程与 Web 服务结合使用
Using stored procedures with web service in Xamarin
我在 Xamarin Form 中工作...我创建了网络服务 ASMX 和 SQL 服务器数据库,并且它工作正常。但是当我用存储过程替换查询时出现错误。
我的工作:
首先,
我创建 class 它的名称 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”。
以及如何解决?我需要配置管理器吗?如果是,如何编写正确的代码
我认为你必须指定 com.CommandType = CommandType.StoredProcedure;
我在 Xamarin Form 中工作...我创建了网络服务 ASMX 和 SQL 服务器数据库,并且它工作正常。但是当我用存储过程替换查询时出现错误。
我的工作:
首先,
我创建 class 它的名称 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”。
以及如何解决?我需要配置管理器吗?如果是,如何编写正确的代码
我认为你必须指定 com.CommandType = CommandType.StoredProcedure;