C# 在sql命令中使用时,会话值未从数据库获取任何数据
我正在更新学生的注册页面。我有一个会话变量,当前正在登录学生。我想使用此会话变量获取当前学生注册。会话变量值正在变好,但当我在SQL查询中使用它来获取数据时,结果是返回空的C# 在sql命令中使用时,会话值未从数据库获取任何数据,c#,asp.net,session,gridview,C#,Asp.net,Session,Gridview,我正在更新学生的注册页面。我有一个会话变量,当前正在登录学生。我想使用此会话变量获取当前学生注册。会话变量值正在变好,但当我在SQL查询中使用它来获取数据时,结果是返回空的 <div class="col-md-12 contact-grid agileinfo-5"> <asp:GridView ID="GridView" AutoGenerateSelectButton="true" On
<div class="col-md-12 contact-grid agileinfo-5">
<asp:GridView ID="GridView" AutoGenerateSelectButton="true"
OnSelectedIndexChanged="GridView_SelectedIndexChanged"
runat="server" CssClass="mydatagrid" PagerStyle-CssClass="pager"
HeaderStyle-CssClass="header" RowStyle-CssClass="rows" AllowPaging="True" >
</asp:GridView>
</div>
if (!IsPostBack)
{
if (Session["UniId"] != null)
{
using (SqlConnection con = new SqlConnection(Dstring))
{
String query = "SELECT * FROM [TransportManagementSystem].[dbo].[StudentRegistration] where [UniID] =@uniId";
SqlDataAdapter sda = new SqlDataAdapter(query, con);
sda.SelectCommand.Parameters.AddWithValue("@uniId",Session["UniId"].ToString());
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows.Count != 0)
{
GridView.DataSource = dt;
GridView.DataBind();
}
}
}
}
如果(!IsPostBack)
{
if(会话[“UniId”]!=null)
{
使用(SqlConnection con=newsqlconnection(Dstring))
{
String query=“从[TransportManagementSystem].[dbo].[StudentRegistration]中选择*,其中[UniID]=@UniID”;
SqlDataAdapter sda=新的SqlDataAdapter(查询,con);
sda.SelectCommand.Parameters.AddWithValue(“@uniId”,Session[“uniId”].ToString());
DataTable dt=新的DataTable();
sda.填充(dt);
如果(dt.Rows.Count!=0)
{
GridView.DataSource=dt;
GridView.DataBind();
}
}
}
}
我正在尝试将数据绑定到网格视图。我没有结果。请帮帮我。可能您的查询没有执行到数据库,因此它不会返回任何内容。因此,首先需要针对SQL Server数据库执行 尝试从以下位置更改代码:
SqlDataAdapter sda = new SqlDataAdapter(query, con);
sda.SelectCommand.Parameters.AddWithValue("@uniId",Session["UniId"].ToString());
致:
更新的答案
也许您需要首先将SQLDataAdapter填充到数据集中?
希望有帮助。你可以试试这个
query = query.Replace("@uniId", "'" + Session["UniId"].ToString() + "'");
去掉这个
sda.SelectCommand.Parameters.AddWithValue("@uniId",Session["UniId"].ToString());
使用SqlDataReader对我来说很有用。谢谢大家抽出时间。您是说
会话[“UniId”].ToString()
返回字符串。空的而不是特定的字符串?在代码会话[“UniId”]
的哪个部分分配了?是否在某个位置添加了断点以查看是否设置了参数值?UniID的数据类型是什么?问题有点不清楚,您是说会话[“UniID”]为空,还是说Sql select语句没有返回任何数据。如果是前者,请在分配会话[“UniId”]的位置张贴代码。如果是后者,则需要检查数据库上的select语句。@TetsuyaYamamoto session[“UniId”]”。ToString返回正确的值,但sql查询未将数据绑定到gridview@WoutervanVegchel对象{String}是数据类型
query = query.Replace("@uniId", "'" + Session["UniId"].ToString() + "'");
sda.SelectCommand.Parameters.AddWithValue("@uniId",Session["UniId"].ToString());