【发布时间】:2015-06-20 07:14:31
【问题描述】:
我的代码隐藏中出现转换失败的错误。我的代码如下:
using (SqlCommand cmd = new SqlCommand((tempUsertype == "0" ? "Select * from tbl_students" : "Select * from tbl_students where Id in (Select Id from tbl_students where NgoId=@NgoId)"), conn))
{
cmd.Parameters.AddWithValue("@NgoId", Convert.ToString(Session["User"]));
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ddlStudent.DataValueField = ds.Tables[0].Columns["Id"].ToString();
ddlStudent.DataTextField = ds.Tables[0].Columns["first_name"].ToString();
ddlStudent.DataSource = ds.Tables[0];
ddlStudent.SelectedIndex = 0;
if (Session["UserType"] == "1" || Session["UserType"] == "2")
{
ddlStudent.Enabled = false;
}
else
{
ddlStudent.Items.Insert(0, new ListItem() { Text = "--Select NGO--", Value = "0" });
ddlStudent.Enabled = true;
}
}
我收到以下错误:
将 nvarchar 值转换为数据类型 int 时转换失败。
这里需要做哪些改变?
【问题讨论】:
-
顺便说一句,这很奇怪:
ddlStudent.DataValueField = ds.Tables[0].Columns["Id"].ToString()。因为你得到的字符串"Id"那时你已经知道了。 -
Session["User"]中的任何内容似乎都不是整数。 -
@TimSchmelter:是的,那么在这种情况下该怎么办??
-
NgoId 是 int 还是 string?您将其作为字符串传递 cmd.Parameters.AddWithValue("@NgoId", Convert.ToString(Session["User"]));
-
@jadarnel27:是的,它不是整数,,,