Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在sql命令中使用时,会话值未从数据库获取任何数据_C#_Asp.net_Session_Gridview - Fatal编程技术网

C# 在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

我正在更新学生的注册页面。我有一个会话变量,当前正在登录学生。我想使用此会话变量获取当前学生注册。会话变量值正在变好,但当我在SQL查询中使用它来获取数据时,结果是返回空的

 <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());