0

我正在使用 SqlDataSource 来填充我的 GridView,因为这两者似乎紧密耦合在一起。由于此网格显示搜索结果,因此我在代码隐藏中编写了一个动态 sql 字符串,该字符串引用了我传入的参数,如下所示:

sdsResults.SelectParameters.Add("CodeID", TypeCode.String, strCodeID)

我的问题是 CodeID 字段是一个 varchar 字段。您可能已经体验过,传入要针对 varchar 字段进行评估的 nvarchar 字段可能对 sql 性能非常不利。但是, SelectParameters.Add 只接受 TypeCode 类型,这似乎只给了我 unicode TypeCode.String 作为我可行的选择。

如何强制我的 SqlDataSource 使用 varchars?此时我无法更改数据类型——它是一个 10 年历史的大型应用程序的主键,坦率地说,varchar 适合该应用程序。

4

3 回答 3

1

顺便说一句,我现在的解决方法是让 SqlDataSource 作为 nvarchar 传入参数。然后,我在 SQL 中的第一行将该 nvarchar 参数显式转换为 varchar 变量,并通过我的脚本使用该新的 varchar 变量。

但这似乎很愚蠢。

于 2008-11-19T15:38:29.990 回答
0

不,不幸的是,它需要传入 System.TypeCode 参数。使用 SqlDbType 最终会出现编译错误。

于 2009-01-05T17:08:36.793 回答
0

也许这会起作用:

using System.Data;

sdsResults.SelectParameters.Add("CodeID", SqlDbType.VarChar, strCodeID);
于 2009-01-02T14:55:06.237 回答