c# - 数据表没有“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();
解决方案
错误消息很清楚: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!");