【问题标题】:Cannot perform '=' operation on System.String and System.Int32?无法对 System.String 和 System.Int32 执行“=”操作?
【发布时间】:2013-12-05 18:56:55
【问题描述】:

我尝试从结果 SqlDataSource 中绑定一个标签。但是我得到了这个错误

无法对 System.String 和 System.Int32 执行“=”操作

<asp:SqlDataSource ID="SqlDataSource1"  FilterExpression="DeviceID='{0}'"   
   runat="server" ConnectionString="<%$ ConnectionStrings:DBConn %>" 
   SelectCommand="SELECT devcocom_admin.SensorDataPackage.a_TankLevel1, 
    devcocom_admin.SensorDataPackage.a_TankLevel2,devcocom_admin.DeviceID bla bla 
    bla Where bla bla ">

         <FilterParameters>


       <asp:ControlParameter Name="DeviceID" ControlID="lblDeviceIDText" 
        PropertyName="Text" />
       </FilterParameters>

         </asp:SqlDataSource>


 private void GetData()
    {
        DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
        DataRowView drv =dv[0];

        lblTank1.Text = drv["a_TankLevel1"].ToString();
        lblTank2.Text = drv["a_TankLevel2"].ToString();
    }  


    protected void Page_Load(object sender, EventArgs e)
    {

      lblDeviceIDText.Text = this.m_Dealer.DeviceID.ToString();

       // e.g lblDeviceIDText.Text=12345 can display on page 

      GetData();           
   }

我在这一行遇到错误

DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);

无法对 System.String 和 System.Int32 执行“=”操作

【问题讨论】:

  • DeviceID 显然是一个整数,您正在尝试将其与字符串进行比较。不要那样做?
  • 如果您没有收到备忘录,在 ASP.NET 网络表单中使用 SQL 数据源是一个好主意,而且从来都不是一个好主意。您的视图中有数据访问代码!!!!

标签: c# asp.net sqldatasource dataview


【解决方案1】:

DbType="Int32" 添加到ControlParameter。这是property linkenum link

【讨论】:

  • @Mehmet,我猜那个控件的值不是整数。
  • @Mehmet,不是表的数据类型,是控件的值。您从中获取参数值的控件。
  • 我可以从这个sqldatasource绑定一个gridview。但是我不能绑定一个标签!
  • @Mehmet,标签的文字是什么?同样,它不能是整数。
  • 原来是这样 我改了 但结果错误!过滤器不工作
猜你喜欢
  • 1970-01-01
  • 2018-09-16
  • 1970-01-01
  • 1970-01-01
  • 2020-04-15
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
相关资源
最近更新 更多