【问题标题】:SqlException and I'm not able to resolve itSqlException,我无法解决它
【发布时间】:2013-09-08 05:24:36
【问题描述】:

我在尝试执行查询时遇到了问题。我收到此错误:

找不到列“m”或用户定义的函数或聚合“m.gender”,或者名称不明确

代码:

 myConnection.Open()
 Dim myReader As SqlDataReader = myCommand.ExecuteReader() /* Problem is here */

 Return myReader

当我直接在 SQL Server 中执行时,查询运行良好。问题是当它在我的应用程序中的按钮单击事件上执行时。 (VB.NET)

请检查我的整个查询

    SELECT pt.color as Color, m.model As Model, m.gender AS Gender,

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 1 THEN 1 
             ELSE 0 
       END) Jan,

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 2 THEN 1 
             ELSE 0 
       END) Feb, 

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 3 THEN 1 
             ELSE 0 
       END) Mar, 

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 4 THEN 1 
             ELSE 0 
       END) Apr,

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 5 THEN 1 
             ELSE 0 
       END) May,

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 6 THEN 1 
             ELSE 0 
       END) Jun,

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 7 THEN 1 
             ELSE 0 
       END) Jul,

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 8 THEN 1 
             ELSE 0 
       END) Ago,

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 9 THEN 1 
             ELSE 0 
       END) Sep,

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 10 THEN 1 
             ELSE 0 
       END) Oct,

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 11 THEN 1 
             ELSE 0 
       END) Nov,

       SUM(CASE 
             WHEN MONTH(o.data_ins) = 12 THEN 1 
             ELSE 0 
       END) Dec

FROM   models m 
       INNER JOIN product_type pt 
               ON m.model_id = pt.model_id
       INNER JOIN product_orders po 
               ON pt.producttype_id = po.producttype_id 
       INNER JOIN orders o 
               ON po.order_id = o.order_id 

WHERE YEAR(o.date_ins) = 2013 and pt.available = 1 and p.status = 'shipped'

GROUP  BY pt.color,
        m.model, 
          m.gender

ORDER BY  pt.color,
        m.model, 
          m.gender 

>

Public Shared Function ExecutaReader(ByVal strSQL)

        Dim strConn As String
        strConn = ConfigurationSettings.AppSettings("strConn")

        Dim myConnection As New SqlConnection(strConn)
        Dim myCommand As New SqlCommand(strSQL, myConnection)

        myConnection.Open()
        Dim myReader As SqlDataReader = myCommand.ExecuteReader()

        Return myReader


    End Function

【问题讨论】:

  • 请显示您定义MyCommand的代码。看不到就无法调试。
  • 不要返回阅读器,在执行它的地方使用它。你应该返回类似IEnumerable<AClassWithMeaningfulProperties>
  • 这是因为我有一个类,我将所有我经常使用的代码放在其中。让我编辑我的原始帖子
  • 如果您在 management studio 中运行 sql,您应该会得到相同的错误,除非您双击错误消息,它会将您带到导致错误的行。这应该可以帮助您隔离它。
  • @GarethD 我在管理工作室运行,它工作正常!

标签: sql sql-server exception sql-server-2012 sqlexception


【解决方案1】:

我认为返回表和表模型具有相同的列名gender

Try m.model As Model2, m.gender AS Gender2,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-16
    • 2019-05-10
    • 2020-06-04
    • 1970-01-01
    • 2012-06-27
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多