首页 > 解决方案 > 数据表没有“Getvalue”的定义 - ASP.Net

问题描述

我需要检查和捕获用户登录详细信息,并将其存储在 Session 下以继续到下一页。但是我收到了这个错误,DataTable 没有“Getvalue”的定义 Session["idname"]= dt.GetValue(0).ToString();。我使用的代码,

con.Open();
SqlCommand cmd = new SqlCommand("select * from LoginDB where (EmpCode COLLATE Latin1_General_CS_AS = @EmpCode) and (Password COLLATE Latin1_General_CS_AS =@Password)", con);
cmd.Parameters.AddWithValue("@EmpCode", txtLogin.Text.Trim());
cmd.Parameters.AddWithValue("@Password", txtPwd.Text.Trim());
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);

if (dt.Rows.Count > 0)
{
    Session["idname"]= dt.GetValue(0).ToString();
    ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('" + "Login Success!" + "')</script>");
    Session["identity"] = txtLogin.Text;
    Response.Redirect("Mainpage.aspx", false);
}
else
{
    txtLogin.Text = "";
    ShowMessage("UserId / Password is Not Correct!");
}
con.Close();

标签: c#asp.net

解决方案


错误消息很清楚:DataTable 没有“Getvalue”的定义。

由于 DataTable 不止一行,您可以做的是选择第一行并通过该行的指定列获取值:

if (dt.Rows.Count > 0)
{
    var userRow = dt.Rows[0];
    Session["idname"] = userRow["idName"].ToString(); //assuming you have idName column in LoginDB
    //..
}
else
{
    txtLogin.Text = "";
    ShowMessage("UserId / Password is Not Correct!");
}
Console.WriteLine("Hello World!");

请参阅:从 C# 中的 DataTable 获取单元格值


推荐阅读