国际化和参数化查询

时间:2011-10-10 09:04:31

标签: c# internationalization datatable dataset

我在C#中创建一个DataSet和DataTable 然后为SQL Server数据库(我使用报表查看器)生成报表。 我需要在DataBase中搜索Value字段 当我的价值是英语时像“测试”一样,每件事都可以, 但是当我的值是阿拉伯语\波斯语\波斯语时,报告查看器不会向我显示任何内容。

我的疑问是:

SELECT DetailsProducts.DarSad, Materials.Material, Products.Product
FROM DetailsProducts INNER JOIN
    Materials ON DetailsProducts.MaterialID = Materials.ID INNER JOIN
    Products ON DetailsProducts.ProductID = Products.ProductID
WHERE (Products.Product = @Product)

当我需要一个值时,我可以使用此查询:

SELECT DetailsProducts.DarSad, Materials.Material, Products.Product
FROM DetailsProducts INNER JOIN
    Materials ON DetailsProducts.MaterialID = Materials.ID INNER JOIN
    Products ON DetailsProducts.ProductID = Products.ProductID
WHERE (Products.Product =N'بطری') //(Bottle = بطری)

没关系,但是当我使用参数时,这个“N'exp”不起作用。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

尝试使用SqlDbType等于SqlDbType.NVarChar创建参数:

SqlParameter parameter = new SqlParameter();
parameter.ParameterName = "@Product";
parameter.SqlDbType = SqlDbType.NVarChar;
parameter.Direction = ParameterDirection.Input;
parameter.Value = "بطری";