【发布时间】: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