问题描述
我有一个MysqL存储过程,该存储过程具有一个输入参数,即从下拉列表中选择的位置。在.aspx文件中手动声明下拉列表项时,它可以正常工作,但是当我希望下拉列表从列中读取值时,存储过程不会接收该参数。
我有多个名为t_location的表,从下拉列表中选择了位置,但出现错误'表t_'不存在。
当我创建两个存储过程时,一个在内部(t_location1)定义了第一个位置,另一个具有location参数,并且仅在回发时使用了第二个,它也可以正常工作。
我应该添加什么到页面加载子项中,以在第一次加载下拉菜单中为存储过程提供第一个位置吗?
<asp:DropDownList ID="dd_lokacija_naslovna" runat="server" AutopostBack="True" DataSourceID="sqlDataSource1" DataTextField="lokacija" DataValueField="lokacija"></asp:DropDownList>
<asp:sqlDataSource ID="sqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:hostConnStr %>" ProviderName="<%$ ConnectionStrings:hostConnStr.ProviderName %>" SelectCommand="select lokacija from t_kontrole"></asp:sqlDataSource>
隐藏代码
Dim cmdpb = New MysqLCommand()
Dim rdr As MysqLDataReader
conn.open()
cmdpb = New MysqLCommand("sp_naslovna_vrijednosti_pb",conn)
cmdpb.CommandType = CommandType.StoredProcedure
cmdpb.Parameters.AddWithValue("@tname",dd_lokacija_naslovna.SelectedValue)
rdr = cmdpb.ExecuteReader
If rdr.Read Then
hum1 = Convert.Todouble(rdr.GetString("hum"))
moist1 = Convert.Todouble(rdr.GetString("moist"))
temp1 = Convert.Todouble(rdr.GetString("temp"))
Dim tempSpan As HtmlGenericControl = Page.FindControl("temp")
tempSpan.InnerText = temp1.ToString()
Dim humSpan As HtmlGenericControl = Page.FindControl("hum")
humSpan.InnerText = hum1.ToString()
Dim moistSpan As HtmlGenericControl = Page.FindControl("moist")
moistSpan.InnerText = moist1.ToString()
End If
rdr.Close()
conn.Close()
sp
BEGIN
SET @x := CONCAT('SELECT * FROM t_mjerenje_',tname,' ORDER BY id_mjerenje DESC LIMIT 1');
Prepare stmt from @x;
Execute stmt;
DEALLOCATE PREPARE stmt;
END
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)