初学.net,困扰本人比较久的一个问题,一直没能解决……
设置一个表用作投票用,有两列:ID和PS
格式:
ID PS
hao (数值)
yiban (数值)
cha (数值)
用session["select"]作为传递。
在SqlDataSource里设置了SELECT和UPDATE语句
SELECT ps FROM diaocha WHERE (ID = @select)
然后绑定select作为参数名,参数值为session("select")UPDATE语句
UPDATE diaocha SET ps = ps + 1 WHERE (ID = @select)
然后同样绑定到session
结果SELECT语句执行成功(绑定到gridview,假设传递hao,gridview只显示hao的数值),UPDATE失败(不自加),什么原因?
但是我用查询分析器执行查询时手动输入ID的值(hao或yiban或cha)后能正常触发更新顺便询问下如何进行如下绑定。
选择好的有<label1>人
选择一般的有<label2>人
选择差的有<label3>人
将ID为hao的PS的值绑定给label1,以此类推新手问题求解……自学真辛苦
设置一个表用作投票用,有两列:ID和PS
格式:
ID PS
hao (数值)
yiban (数值)
cha (数值)
用session["select"]作为传递。
在SqlDataSource里设置了SELECT和UPDATE语句
SELECT ps FROM diaocha WHERE (ID = @select)
然后绑定select作为参数名,参数值为session("select")UPDATE语句
UPDATE diaocha SET ps = ps + 1 WHERE (ID = @select)
然后同样绑定到session
结果SELECT语句执行成功(绑定到gridview,假设传递hao,gridview只显示hao的数值),UPDATE失败(不自加),什么原因?
但是我用查询分析器执行查询时手动输入ID的值(hao或yiban或cha)后能正常触发更新顺便询问下如何进行如下绑定。
选择好的有<label1>人
选择一般的有<label2>人
选择差的有<label3>人
将ID为hao的PS的值绑定给label1,以此类推新手问题求解……自学真辛苦
==
GridView的DataKeyNames设置为ID了么?可以贴贴页面代码
选择一般的有 <label2>人
选择差的有 <label3>人
==
貌似 select * from diaocha 然后绑定到DataList上即可
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:toupiaoConnectionString %>"
SelectCommand="SELECT ID,ps FROM diaocha1 WHERE (ID = @no)" UpdateCommand="UPDATE diaocha1 SET ps = ps + 1 WHERE (ID = @no)">
<UpdateParameters>
<asp:SessionParameter Name="no" SessionField="select" Type="String" />
</UpdateParameters>
<SelectParameters>
<asp:SessionParameter Name="no" SessionField="select" Type="String" />
</SelectParameters>
<FilterParameters>
<asp:SessionParameter Name="no" SessionField="select" />
</FilterParameters>
</asp:SqlDataSource>
</div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="ps" HeaderText="ps" SortExpression="ps" />
</Columns>
</asp:GridView>
自己寫代碼連接數據庫清晰明了,有什麽問題也好檢查不明白你是兩個頁面還是一頁面
如果是兩個頁面:
一個頁面到另一個頁面的傳參,如果安全性要求不是很高的話也不必要用Session
用Default.aspx?select=值就可以了
在另一個頁面用Request.QueryString["select"]取值如果是一個頁面:
點擊投票觸發的事件裡面執行連接數據庫,+1操作,然後重新綁定3個label
(要例子代碼的話說一聲)
在我看来应该不是没能取值的问题,因为session已经正确传递给SELECT语句并表达了。而且我试过多种传递方法例如QueryString甚至先赋值给一个label(好验证值是否传过去了)再用control传给SqlDataSource。SELECT语句都能正常获得参数的值并查询,但是UPDATE一直不起作用重新放代码,因为全用控件,几乎用到C#代码
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:toupiaoConnectionString %>"
SelectCommand="SELECT ID, ps FROM diaocha1 WHERE (ID = @ID)" UpdateCommand="UPDATE diaocha1 SET ps = ps + 1 WHERE (ID = @ID)">
<UpdateParameters>
<asp:SessionParameter Name="ID" SessionField="select" Type="String" />
</UpdateParameters>
<SelectParameters>
<asp:SessionParameter Name="ID" SessionField="select" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
</div>
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("ps") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>
SqlDataSource1.Update();
问题解决,谢谢大家的帮助
少個SqlDataSource1.Update();