asp.net-mvc-3 - 使用函数从表中返回一个值

标签 asp.net-mvc-3 sql-server-2008

我有这个代码:

public int GetUserIdByEmail(string email)
{
  using (SqlConnection conn = new SqlConnection(ZincModelContainer.CONNECTIONSTRING))
  {
    using (SqlCommand cmd = conn.CreateCommand())
    {
      conn.Open();
      cmd.CommandType = System.Data.CommandType.Text;
      cmd.CommandText = String.Concat("SELECT [Zinc].[GetUserIdByEmail] (", email, ")");  //is this correct??? the problem lies here

      return (int)cmd.ExecuteScalar();
     } 
  }
}

我在上面的代码中收到错误。这还是不对 我现在的功能如下 veljasije 建议的 谢谢

最佳答案

修改您的程序:

CREATE PROCEDURE [Zinc].[GetUserIdByEmail]
 (
   @Email varchar (100)
 )

 AS
 BEGIN

   SELECT zu.UserId from Zinc.Users zu WHERE Email = @Email

 END

并在代码中将参数类型从 NVarChar 更改为 VarChar

函数

CREATE FUNCTION [Zinc].[GetUserIdByEmail]
 (
   @Email varchar(100)
 )
 RETURNS int
 AS
 BEGIN

   DECLARE @UserId int;
   SET @UserId = (SELECT zu.UserId from Zinc.Users zu WHERE Email = @Email)

   RETURN @UserId                
 END

关于asp.net-mvc-3 - 使用函数从表中返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14871938/

相关文章:

SQL - 返回数字范围 1 到 1.99

sql-server - 如何复制表格和数据以进行测试

sql - 如何在不更改总和的情况下舍入单个 SQL 请求中的列?

asp.net - 尝试为 .mdf 文件附加自动命名的数据库失败

asp.net-mvc-3 - 如何使用 Ninject 注入(inject)一些通用的 asp.net http 处理程序?

c# - MVC 模型绑定(bind)和类型转换

c# - SQL Server 2008 的 .NET 异常

asp.net-mvc - MVC 中的路径中的花括号意味着什么?

c# - 如何对该方法的 catch block 进行单元测试?

sql-server-2008 - 什么会导致 GetDate() 超时?