今天烦了一天了。怎么弄也不行UserNameById为存储过程 一直抛错。SELECT * FROM Users WHERE Liang_Id in('+@Liang_Id+')
SELECT * FROM Users WHERE Liang_Id in(@Liang_Id)什么方法都尝试完了。难道是其他错?
public string GetNameByUserId(string ownerId)
{
string count = ""; int ow = int.Parse(ownerId.ToString()); SqlParameter[] spt ={
new SqlParameter("@Liang_Id",ow)
};
using (SqlDataReader reader = DBHelper.ExecuteReader(DBHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "UserNameById", spt))
{
while (reader.Read())
{
//版块那边使用
count += reader["Liang_RealName"].ToString() + "| "; }
}
return count;
}
非存储过程 可以正确显示
public string GetNameByUserId(string ownerId)
{ string count = ""; string sql = "SELECT * FROM Users WHERE Liang_Id in ("+ownerId+")";
using (SqlDataReader reader = DB.GetReader(sql))
{
while (reader.Read())
{
//版块那边使用
count += reader["Liang_RealName"].ToString() + "| "; }
}
return count;
}请问 在存储过程应该怎么转换?才不会报错?谢谢!
SELECT * FROM Users WHERE Liang_Id in(@Liang_Id)什么方法都尝试完了。难道是其他错?
public string GetNameByUserId(string ownerId)
{
string count = ""; int ow = int.Parse(ownerId.ToString()); SqlParameter[] spt ={
new SqlParameter("@Liang_Id",ow)
};
using (SqlDataReader reader = DBHelper.ExecuteReader(DBHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "UserNameById", spt))
{
while (reader.Read())
{
//版块那边使用
count += reader["Liang_RealName"].ToString() + "| "; }
}
return count;
}
非存储过程 可以正确显示
public string GetNameByUserId(string ownerId)
{ string count = ""; string sql = "SELECT * FROM Users WHERE Liang_Id in ("+ownerId+")";
using (SqlDataReader reader = DB.GetReader(sql))
{
while (reader.Read())
{
//版块那边使用
count += reader["Liang_RealName"].ToString() + "| "; }
}
return count;
}请问 在存储过程应该怎么转换?才不会报错?谢谢!
set @sql='SELECT * FROM Users WHERE Liang_Id where 1=1'
set @Sql=@sql+' and Liang_Id in ('+@Liang_Id+')'
@Liang_Id int
AS
DECLARE @sqlstr nvarchar(200)
set @sqlstr = 'SELECT * FROM Users WHERE Liang_Id 1=1'set @sqlstr = @sqlstr+' AND Liang_Id in ('+@Liang_Id+')'string count = ""; SqlParameter[] spt ={
new SqlParameter("@Liang_Id",SqlDbType.Int)
}; spt[0].Value = ownerId; using (SqlDataReader reader = DBHelper.ExecuteReader(DBHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "BBS_UserNameById", spt))
{
while (reader.Read())
{
//版块那边使用
count += reader["Liang_RealName"].ToString() + "| "; }
}
return count;
怎么转也不可以哦!求教!~
SELECT * FROM Users WHERE Liang_Id in(@Liang_Id)
这个问题我以前也想过,后来知道了在IN,NOT IN中最好不要包含SQLSERVER变量,要用变量最好用比较运算符
打个比方in(1,2,3)
declare @liangid int
set @liangid=1,2,3么
in('aaa','bbb',ccc')
declare @liangid varchar(50)
set @liangid='aaa,bbb,ccc'行吗
又不允许@liangid='aaa','bbb','ccc'语法错误