• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1468
  • Last Modified:

Column 'Colname' does not belong to table RowData.

I cannot figure this out.

The same code with other sql statements works in other pages.

Here is the code.

strSQL returns 7933 from the SQL Server Management window.

 strSQL = "SELECT Count(*) FROM SymbolWork1 AS WorkCount";  Cast as string
            SqlCommand cmdUpdatesDone1 = new SqlCommand(strSQL, conStockSelect);
            cmdUpdatesDone1.CommandType = System.Data.CommandType.Text;
            cmdUpdatesDone1.ExecuteNonQuery();
            cmdUpdatesDone1.Dispose();

            string strWorkCount;
            strWorkCount = GetColValue(conStockSelect, strSQL, "WorkCount", "String");
            lblStatus.Text = "Weekly update done " + strWorkCount + " SymbolWork1 rows created." ;
            conStockSelect.Close();

      private string GetColValue(SqlConnection pconStockSelect, string pstrSymbolNameSQL, string pstrColName, string pstrDataType)
        // Gets column value based on the SQL Select string
 
        {
            SqlCommand cmd = new SqlCommand(pstrSymbolNameSQL, pconStockSelect);

            // Try to open database and read information.

            SqlDataAdapter adpSymbol = new SqlDataAdapter();
            adpSymbol.SelectCommand = new SqlCommand(pstrSymbolNameSQL, pconStockSelect);

            DataSet dstSymbol = new DataSet();
            adpSymbol.Fill(dstSymbol, "RowData");

            if (dstSymbol.Tables[0].Rows.Count == 0)
            {
                return "None";
            }
            else
            {
                DataRow rowSymbol = dstSymbol.Tables[0].Rows[0];

                string strColValue = rowSymbol[pstrColName].ToString();
                // DateTime dteQuoteDate = Convert.ToDateTime(rowQuoteHistory["QuoteDate"]);

                return strColValue;
            }
        }

System.ArgumentException was unhandled by user code
  HResult=-2147024809
  Message=Column 'WorkCount' does not belong to table RowData.
  Source=System.Data
  StackTrace:
       at System.Data.DataRow.GetDataColumn(String columnName)
       at System.Data.DataRow.get_Item(String columnName)
       at StockProMax.Admin.MaintainDataWeekly.GetColValue(SqlConnection pconStockSelect, String pstrSymbolNameSQL, String pstrColName, String pstrDataType) in c:\Users\David\Documents\Visual Studio 2012\Projects\StockPickerMax\StockPickerMax\Admin\MaintainDataWeekly.aspx.cs:line 1142
       at StockProMax.Admin.MaintainDataWeekly.Page_Load(Object sender, EventArgs e) in c:\Users\David\Documents\Visual Studio 2012\Projects\StockPickerMax\StockPickerMax\Admin\MaintainDataWeekly.aspx.cs:line 140
       at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
       at System.Web.UI.Control.OnLoad(EventArgs e)
       at System.Web.UI.Control.LoadRecursive()
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  InnerException:
0
Dovberman
Asked:
Dovberman
  • 2
1 Solution
 
Surendra NathTechnology LeadCommented:
here you go

I think you have to change the below

strSQL = "SELECT Count(*) FROM SymbolWork1 AS WorkCount";  Cast as string

to

strSQL = "SELECT Count(*) AS WorkCount FROM SymbolWork1 ";  

although the previous is a valid sql statement it is aliasing the table name instead of the column name, so you effectively you renamed symbolwork1 rather than workcount.
0
 
DovbermanAuthor Commented:
That explains why it works in 20 other places.

Does not work
strSQL = "SELECT Count(*) FROM SymbolWork1 AS WorkCount";

Works
string strMaxPctChgSQL = "SELECT MAX(PctChg) As MaxPctChg FROM Exceptions";

string strMaxPctChg = GetColValue(conStockSelect,

Thank you
0
 
DovbermanAuthor Commented:
Thank you.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now