我正在使用SqlDataSource来填充我的GridView,因为这两者似乎紧密耦合在一起。由于此网格显示搜索结果,因此我在我的代码隐藏中编写了一个动态sql字符串,该字符串引用了我传入的参数,如下所示:
sdsResults.SelectParameters.Add("CodeID", TypeCode.String, strCodeID)
我的问题是CodeID字段是varchar字段。您可能已经遇到过,传入nvarchar字段以针对varchar字段进行评估可能对sql性能非常不利。但是,SelectParameters.Add只接受TypeCode类型,这似乎只给我unicode TypeCode.String作为我的可行选项。
如何强制我的SqlDataSource使用varchars?我无法在此时更改数据类型 - 它是一个大型10年应用程序的主键,坦率地说,varchar适合应用程序。
答案 0 :(得分:1)
但这看起来很傻。
答案 1 :(得分:0)
也许这会奏效:
using System.Data;
sdsResults.SelectParameters.Add("CodeID", SqlDbType.VarChar, strCodeID);
答案 2 :(得分:0)
不幸的是,它需要传入一个System.TypeCode参数。使用SqlDbType会导致编译错误。