关于网友提出的“打开网页出现乱码 用存储过程插入中文出现乱码”问题疑问,本网通过在网上对“打开网页出现乱码 用存储过程插入中文出现乱码”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:打开网页出现乱码 用存储过程插入中文出现乱码
描述: 我的空间是放在国外的服务器上,用的是sql server2005的数据库,英文版操作系统.当我向数据库插入中文字符时,就出现乱码.因为我的代码全部是用存储过程来写的,如果有insert语句到是可以在字段前加'N'(Insert into tablename(title)values(N'中文标题') )来防止中文乱码?但我用的存储过程,我要怎样修改了?代码如下:
CREATE PROCEDURE [Stu_InsertAbout]
@title nvarchar(100)
AS
Insert into Stu_About(title)
Values
(@title)
GO
C#代码:
public int InsertAbout(About about_list)
{
SqlParameter[] param =
{
DataClass.MakeInParam("@title", SqlDbType.NVarChar,100,about_list.title)
};
try
{
int id = DataClass.ExecuteNonQuery("Stu_InsertAbout", param);
return id;
}
catch
{
return 0;
}
}
public static SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
public static SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param;
param = MakeParam(ParamName, DbType, Size);
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value;
return param;
}
也就是说我的值是通过SqlParameter 参数传递的.我要怎样修改了?
解决方案1:
-- =============================================
create PROCEDURE Stu_InsertAbout
-- Add the parameters for the stored procedure here
@title nvarchar(100)
AS
BEGIN
declare @sql nvarchar(1000)
insert into test (a)values(N''+@title+'')
END
GO
exec Stu_InsertAbout '中文'
以上介绍了“打开网页出现乱码 用存储过程插入中文出现乱码”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2599934.html