1.存储过程如下:
********************************************************
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
/*获取指定用户记录*/
ALTER PROCEDURE [dbo].[zlab_User_GetUserByUserName]
(
@Username varchar(256)
)
AS
SET NOCOUNT ON
SELECT Top 1 *
FROM Zlab_RBAC_Users
WHERE Username = @Username
********************************************************2.C#执行存储过程代码如下:
********************************************************
if (!string.IsNullOrEmpty(user.Username))
{
SqlParameter parm = new SqlParameter("@Username", SqlDbType.VarChar, 256);
parm.Value = user.Username;
dr = SqlHelper.ExecuteReader(SqlHelper.UserConnectionString, "zlab_User_GetUserByUserName", parm);
//dr = SqlHelper.ExecuteReader(SqlHelper.UserConnectionString, "zlab_User_GetUserByUserName", new SqlParameter("@Username", user.Username));
}
我用的是微软的SqlHelper,没有做任何修改。但是执行的时候总是报"将参数值从 SqlParameter 转换到 String 失败"错误!有人遇到过这样的问题吗?
********************************************************
********************************************************
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
/*获取指定用户记录*/
ALTER PROCEDURE [dbo].[zlab_User_GetUserByUserName]
(
@Username varchar(256)
)
AS
SET NOCOUNT ON
SELECT Top 1 *
FROM Zlab_RBAC_Users
WHERE Username = @Username
********************************************************2.C#执行存储过程代码如下:
********************************************************
if (!string.IsNullOrEmpty(user.Username))
{
SqlParameter parm = new SqlParameter("@Username", SqlDbType.VarChar, 256);
parm.Value = user.Username;
dr = SqlHelper.ExecuteReader(SqlHelper.UserConnectionString, "zlab_User_GetUserByUserName", parm);
//dr = SqlHelper.ExecuteReader(SqlHelper.UserConnectionString, "zlab_User_GetUserByUserName", new SqlParameter("@Username", user.Username));
}
我用的是微软的SqlHelper,没有做任何修改。但是执行的时候总是报"将参数值从 SqlParameter 转换到 String 失败"错误!有人遇到过这样的问题吗?
********************************************************
dr = SqlHelper.ExecuteReader(SqlHelper.UserConnectionString, "zlab_User_GetUserByUserName", parm);红色部分的参数。..sqlhelper中应该是个string类型的吧。。你现在传进去的是个SqlParameter
public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
按照你所说
dr = SqlHelper.ExecuteReader(SqlHelper.UserConnectionString, "zlab_User_GetUserByUserName",user.UserName);确实没问题
public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)红色部是个数组。。你添加参数这么添加 SqlParameter[] sp = new SqlParameter[]
{
new SqlParameter("@Username", SqlDbType.VarChar, 256);
};
sp[0].Value = user.Username;
//再把这个sp传进去
其中的parm所在处的参数为string类型的.