asp.net 查询MSSQL2000数据库内容时的字符集问题

feiliuxing 2008-07-13 01:21:55
各位好,
在MSSQL2000中,我写了一个存储过程,因为字符集的原因我在“查询分析器”中调用的时候需要在参数前加上“N”,
那么我想问在asp.net程序代码中我要调用该存储过程需要如何表示呢?因为字符集的关系,在调用的时候总是没有办法得到想要的结果!该问题困扰好久,在Google上都翻透了也不知道如何解决,期盼各位大侠的给予帮助,非常感谢!
代码如下:
1.在 查询分析器中调用:exec sp_GetCustomerInfo N'批发商' --这样OK
2.在asp.net中的代码段:
string = "批发商";
DataTable dt = new DataTable();
SqlCommand comm = new SqlCommand("sp_GetCustomerInfo", conn.Conn);
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add("@ADRLIN1", SqlDbType.NVarChar, 500);
comm.Parameters["@ADRLIN1"].Value = CustomerName;
comm.Parameters["@ADRLIN1"].Direction = System.Data.ParameterDirection.Input;
SqlDataAdapter adapter = new SqlDataAdapter(comm);
adapter.Fill(dt);
if (conn.Conn.State == ConnectionState.Open)
{
conn.Conn.Close();
}
///这样得不到任何结果
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiliuxing 2008-07-13
  • 打赏
  • 举报
回复
谢谢各位,已经解决,就诚如一楼的朋友所说,在用二楼的朋友的方法跟踪发现一切OK!谢谢!
tianhuo_soft 2008-07-13
  • 打赏
  • 举报
回复
起的真够早的了
hery2002 2008-07-13
  • 打赏
  • 举报
回复
 string CustomerName= "批发商";  //笔误?加上CustomerName
DataTable dt = new DataTable();
SqlCommand comm = new SqlCommand("sp_GetCustomerInfo", conn.Conn);
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add("@ADRLIN1", SqlDbType.NVarChar, 500);
comm.Parameters["@ADRLIN1"].Value = CustomerName; //你CustomerName哪里来的?
comm.Parameters["@ADRLIN1"].Direction = System.Data.ParameterDirection.Input;
SqlDataAdapter adapter = new SqlDataAdapter(comm);
adapter.Fill(dt);
if (conn.Conn.State == ConnectionState.Open)
{
conn.Conn.Close();
}

------------------------
是否是中间字符集转换的问题,
使用sql profiler 看看你页面传到服务器时,
"批发商"转换成什么代码了...
fcuandy 2008-07-13
  • 打赏
  • 举报
回复
在asp.net中调用存储过程时,给参数指定sqldbtype.nvarchar类型就可以了。
即如你上面写的,@adrlin1 参数为nvarchar, 赋值后,执行时,实际上相当于以 N前辍。

得不到结果,那你要查一下customerName 变量的值。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧