【发布时间】:2010-10-29 06:32:22
【问题描述】:
我有一个网络应用程序,我在其中对两个连接的表调用 SELECT DISTINCT 查询。如果我尝试从网页运行查询,我会收到以下错误:“无法将 text、ntext 或 image 数据类型选为 DISTINCT”。当我从 SQL Management Studio 中运行它时,查询运行良好 - 没有错误。更有趣的是,这两个表中都没有 text、ntext 或 image 数据类型。
应该注意的是,我正在单步执行代码,并且在执行查询之前,我正在将查询从“监视”窗口复制到 Mgmt Studio,当我单步执行并让.NET 运行它,会引发错误。我正在使用 .NET 2 和 System.Data.SqlClient 命名空间。
这是我的查询:
SELECT DISTINCT ResponseFormParent.*
FROM ResponseFormParent
INNER JOIN ResponseForm
ON ResponseFormParent.ResponseFormParentId = ResponseForm.ResponseFormParentId
WHERE ResponseForm.RegistrationDeadline >= '5/1/2009'
ResponseFormParent 有 3 个整数、1 个日期时间和 1 个 nvarchar(50)。 ResponseForm 有 4 个整数、1 个日期时间、1 个位和 1 个 nvarchar(255)。
是什么导致了问题?这个错误没有意义。
更新:调用查询的代码
public DataSet ExecuteQuery(string sql)
{
DataSet ds = null;
try
{
using (SqlConnection dbconn = new SqlConnection(connectionString))
using (SqlCommand dbcmd = new SqlCommand(sql, dbconn))
{
SqlDataAdapter dbadapter = new SqlDataAdapter(dbcmd);
ds = new DataSet();
dbadapter.Fill(ds);
}
}
catch (Exception ex)
{
Utility.LogError(sql, ex);
}
return ds;
}
【问题讨论】:
-
发布执行查询的 C#/VB 代码?
-
你能添加用于运行查询的代码吗?
-
好吧,您的 cmets 已经淘汰了服务器/数据库。猜猜唯一剩下的就是Schemas了。有没有可能在不同的模式中有另一个表? (你能改变你的查询,把 dbo. 放在每个表名的前面)
-
添加方案后没有变化(dbo.)
-
您查询的是哪个版本的 SQL Server?
标签: .net sql tsql sql-server-2000