Asp.net &引用;无效列";从SqlDataReader填充GridView时出错

Asp.net &引用;无效列";从SqlDataReader填充GridView时出错,asp.net,gridview,webforms,Asp.net,Gridview,Webforms,我试图从数据库中读取数据,然后在绑定到GridView之前填充datatable 当我运行应用程序时,它会生成以下EROR: Exception Details: System.Data.SqlClient.SqlException: Invalid column name 'PrescriptionNumber'. Invalid column name 'PrescriptionNumber'. Invalid column name 'DrugCode'. Invalid column

我试图从数据库中读取数据,然后在绑定到GridView之前填充datatable

当我运行应用程序时,它会生成以下EROR:

Exception Details: System.Data.SqlClient.SqlException: Invalid column name  'PrescriptionNumber'.
Invalid column name 'PrescriptionNumber'.
Invalid column name 'DrugCode'.
Invalid column name 'PrescriptionDate'.
Invalid column name 'PaymentStatus'.
Invalid column name 'AmountPaidFrom'.

Source Error: 


Line 34:           cmd.Connection = con;
Line 35:           con.Open();
Line 36:           using (SqlDataReader reader = cmd.ExecuteReader())
Line 37:           {
Line 38:               if (reader.HasRows)    
以下是标记:

<asp:GridView ID="grdpayment" runat="server" Width="876px" 
        AutoGenerateColumns="False" CellPadding="4" GridLines="Horizontal" 
        BackColor="White" BorderColor="#336666" BorderStyle="Double" 
        BorderWidth="3px" style="margin-right: 288px" 
        onselectedindexchanged="grdpayment_SelectedIndexChanged">
    <FooterStyle BackColor="White" ForeColor="#333333" />
    <HeaderStyle BackColor="#336666" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#336666" ForeColor="White" HorizontalAlign="Center" />
    <RowStyle BackColor="White" ForeColor="#333333" />
    <SelectedRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />
    <SortedAscendingCellStyle BackColor="#F7F7F7" />
    <SortedAscendingHeaderStyle BackColor="#487575" />
    <SortedDescendingCellStyle BackColor="#E5E5E5" />
    <SortedDescendingHeaderStyle BackColor="#275353" />
</asp:GridView>
)在[小学]

从数据中读取数据的C#方法:

 public void makepayment(string prescriptionValue)
    {
      DataTable storedata = new DataTable();
      string _connection = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
      SqlConnection con = new SqlConnection(_connection);
      string sqlquery =
           "Select PrescriptionNumber,DrugCode,PrescriptionDate,PaymentStatus,AmountPaid"
         + "From Payment where PrescriptionNumber='" + prescriptionValue + "'";
      SqlCommand cmd = new SqlCommand(sqlquery,con);
      SqlDataAdapter adapt = new SqlDataAdapter(cmd);
      adapt.Fill(storedata);
      grdpayment.DataSource = storedata;
      grdpayment.DataBind();
    } 
我这样调用该方法:

protected void btnsearchprescripitionnum_Click(object sender, EventArgs e)
    {
        if (txtprescriptionnum.Text == "")
        {

            checkval.Text = "Enter PriscriptionNumber";
        }
        else
        {
            makepayment(txtprescriptionnum.Text.ToString());
        }


    }

该错误意味着错误消息中列出的列(“处方号”、“处方号”、“药物代码”、“处方日期”、“付款状态”和“AmountPaidFrom”)实际上不存在于所查询的表中


您需要验证您的查询是否指向正确的表,查询中是否没有输入错误,以及您试图查询的表中是否确实存在列。

此错误表示错误消息中列出的列('PrescriptionNumber'、'PrescriptionNumber'、'DrugCode'、'PrescriptionDate'、'PaymentStatus'和'AmountPaidFrom')实际上不存在于被查询的表中


您需要验证您的查询是否指向正确的表,查询中是否没有输入错误,以及您试图查询的表中是否确实存在列。

此错误表示错误消息中列出的列('PrescriptionNumber'、'PrescriptionNumber'、'DrugCode'、'PrescriptionDate'、'PaymentStatus'和'AmountPaidFrom')实际上不存在于被查询的表中


您需要验证您的查询是否指向正确的表,查询中是否没有输入错误,以及您试图查询的表中是否确实存在列。

此错误表示错误消息中列出的列('PrescriptionNumber'、'PrescriptionNumber'、'DrugCode'、'PrescriptionDate'、'PaymentStatus'和'AmountPaidFrom')实际上不存在于被查询的表中



您需要验证您的查询是否指向正确的表,查询中是否没有输入错误,以及您试图查询的表中是否确实存在列。

您传递给SqlCommand的查询似乎指定了表中不存在的字段。您传递给SqlCommand的查询似乎是这样的指定表中不存在的字段。看起来,您传递给SqlCommand的查询指定了表中不存在的字段。看起来,您传递给SqlCommand的查询指定了表中不存在的字段。@jadrnel27,该表以正确的columns@jadrnel27,我已编辑我的问题。添加e表和方法的全部细节。@kombo哇,这太奇怪了!此时我唯一能想到的就是你的连接字符串(“ApplicationServices”)没有将您指向正确的数据库。您是否有多个此数据库/表的实例/版本?例如,生产、QA和测试。或者某个地方的付款表的旧版本不完整?但是,@kombo,我没有从错误消息中看到代码(
使用(SqlDataReader=cmd.ExecuteReader())
等等)。从哪里调用它?我想相信这就是问题所在:SqlCommand cmd=new SqlCommand(sqlquery,con)@jadrnel27,该表肯定包含正确的columns@jadrnel27,我已经编辑了我的问题。添加表和方法的全部细节。@kombo哇,这太奇怪了!此时我唯一能想到的就是你的连接字符串(“ApplicationServices”)没有将您指向正确的数据库。您是否有多个此数据库/表的实例/版本?例如,生产、QA和测试。或者某个地方的付款表的旧版本不完整?但是,@kombo,我没有从错误消息中看到代码(
使用(SqlDataReader=cmd.ExecuteReader())
等等)。从哪里调用它?我想相信这就是问题所在:SqlCommand cmd=new SqlCommand(sqlquery,con)@jadrnel27,该表肯定包含正确的columns@jadrnel27,我已经编辑了我的问题。添加表和方法的全部细节。@kombo哇,这太奇怪了!此时我唯一能想到的就是你的连接字符串(“ApplicationServices”)没有将您指向正确的数据库。您是否有多个此数据库/表的实例/版本?例如,生产、QA和测试。或者某个地方的付款表的旧版本不完整?但是,@kombo,我没有从错误消息中看到代码(
使用(SqlDataReader=cmd.ExecuteReader())
等等)。从哪里调用它?我想相信这就是问题所在:SqlCommand cmd=new SqlCommand(sqlquery,con)@jadrnel27,该表肯定包含正确的columns@jadrnel27,我已经编辑了我的问题。添加表和方法的全部细节。@kombo哇,这太奇怪了!此时我唯一能想到的就是你的连接字符串(“ApplicationServices”)没有将您指向正确的数据库。您是否有多个此数据库/表的实例/版本?例如,生产、QA和测试。或者某个地方的付款表的旧版本不完整?但是,@kombo,我没有从错误消息中看到代码(
使用(SqlDataReader=cmd.ExecuteReader())
等等)。从哪里调用它?我想相信这就是问题所在:SqlCommand cmd=newsqlcommand(sqlquery,con);
protected void btnsearchprescripitionnum_Click(object sender, EventArgs e)
    {
        if (txtprescriptionnum.Text == "")
        {

            checkval.Text = "Enter PriscriptionNumber";
        }
        else
        {
            makepayment(txtprescriptionnum.Text.ToString());
        }


    }