tenant라는 select 쿼리에서 단일 값을 가져 오려고합니다. SQL Server의 Tenant_Facing에는 'Y'또는 'N'중 하나의 char 값이 있습니다. 실행하면 Char tenant = (Char) cmd.ExecuteScalar();에서 "지정된 캐스트가 유효하지 않습니다"라는 오류가 발생합니다. 두 문자가 일치하지 않는 이유를 이해할 수 없습니까? 여기 내 코드,ASP.NET C# 지정된 캐스트가 유효하지 않습니다.
protected void DropDownArchitecture_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Database_Shared_NotebookConnectionString"].ConnectionString);
string architecture = ((DropDownList)GridViewServer.FooterRow.FindControl("DropDownArchitecture")).Text;
SqlCommand cmd = new SqlCommand("SELECT Tenant_Facing FROM tblArchitecture WHERE Architecture = '" + architecture + "'");
cmd.Connection = conn;
conn.Open();
Char tenant = (Char)cmd.ExecuteScalar();
conn.Close();
if (tenant == 'Y')
{
((DropDownList)GridViewServer.FooterRow.FindControl("DropDownTenant")).Visible = true;
}
else
{
((DropDownList)GridViewServer.FooterRow.FindControl("DropDownTenant")).Visible = false;
}
}
문자열로 변환 해 보았습니까? 문자열 테넌트 = (문자열) cmd.ExecuteScalar(); – SimonGates
약간의 조언 : 부울 대신 Y 또는 N을 사용하십시오. –